在jQuery对话框中将按钮添加到我的按钮

问题描述:

我有一个jQuery对话框,我在表格中使用了一些按钮(用于编辑/删除功能)。在jQuery对话框中将按钮添加到我的按钮

只有在之前编码警报,我才能在这些按钮上添加图标。很奇怪。如果我删除警报,则不显示按钮。

enter image description here

$().ready(function() { 

    $('.MaterialEdit').live("click", function() { 
     alert('clicked'); 
     $(".MaterialPackingEdit").button({ icons: { primary: "ui-icon-pencil"} }); 
     $(".MaterialPackingRemove").button({ icons: { primary: "ui-icon-trash"} });  
    }); 
}); 

上述对应使用的按钮我的主页上开设了jQuery对话框中的MaterialEdit类。

有什么想法?

谢谢。

+0

不应该使用'$(document).ready(function(){...})',它等于'$(function(){...})' – jb10210 2012-03-27 13:07:43

+0

@ jb10210:它不会改变任何东西。不管怎么说,还是要谢谢你。 – Bronzato 2012-03-27 13:09:41

+0

除非在点击事件期间创建按钮,否则应将按钮初始化代码移动到文档就绪功能中,而不是单击。你的浏览器是否有JavaScript错误? – lsuarez 2012-03-27 13:15:30

问题中的一些标记肯定会有帮助。不管怎么说,这里的东西上的jsfiddle工程 - http://jsfiddle.net/FloydPink/e3pCL/

的想法是用“开放”的事件作为记录在dialog demo page像这样:

open: function(event, ui) { 
     $('.MaterialPackingEdit').button({ 
      icons: { 
       primary: "ui-icon-pencil" 
      }, 
      text: false 
     }); 
     $('.MaterialPackingRemove').button({ 
      icons: { 
       primary: "ui-icon-trash" 
      }, 
      text: false 
     }); 
    } 

希望有所帮助。

编辑:函数本身到通用“对话框加载”功能OP在注解中提到的通过,下面的代码片段可用于:

$(function() { 
    var onDialogOpen = function(event, ui) { 
      $('.MaterialPackingEdit').button({ 
       icons: { 
        primary: "ui-icon-pencil" 
       }, 
       text: false 
      }); 
      $('.MaterialPackingRemove').button({ 
       icons: { 
        primary: "ui-icon-trash" 
       }, 
       text: false 
      }); 
     }; 
    $('.dialog').dialog({ 
     autoOpen: false, 
     title:'Buttons As Icons on a jQuery Dialog', 
     width: 400, 
     open: onDialogOpen 
    }); 
    $('.MaterialEdit').click(function() { 
     $('.dialog').dialog('open'); 
    }); 
}); 

选中此更新到的jsfiddle - http://jsfiddle.net/FloydPink/e3pCL/27/

+0

感谢它帮助我很多问题:是否有可能使函数动态?我的意思是我有一个通用的我传递几个参数(如宽度,高度,...)的DialogLoader也许我可以传递加载事件的函数名称?可能? – Bronzato 2012-03-27 14:27:55

+0

当然。 onOpen回调函数可以作为参数传递给DialogLoader函数,并用于对话框初始化。检查更新到答案 – 2012-03-27 14:33:07

+0

这很酷。谢谢你Pink Floyd。 – Bronzato 2012-03-27 14:34:51