我似乎无法在Dialog标题/标题中添加click事件处理程序。
jQuery UI中的某些东西似乎覆盖了点击处理程序,关于如何实现这一点的任何想法?
我将它绑定到ui-dialog-titlebar
类:
var dlg = $("#dlg_"+id).dialog({ ... });
dlg.find('.ui-dialog-titlebar').click(function() {
alert("test");
});
如果我尝试alert(dlg.find('.ui-dialog-titlebar'));
,它会提醒我一个对象。但是如果我做$('.ui-dialog-titlebar').click(function() { alert("test"); });
那么它工作正常,但它不是一个选项,因为我有一些对话框。
我找到了解决方案,我已在下面回答了这个问题。
答案 0 :(得分:2)
我找到了解决方案.. ui.dialog-titlebar类不是对话框引用的子代。所以我只是做dlg.parent().find('.ui-dialog-titlebar').click(...)
而且一切似乎都很好!
谢谢。
答案 1 :(得分:1)
尝试使用live()
代替click()
。所以你会在哪里:
$('.ui.dialog-titlebar').click(function() {});
改为使用live()
:
$('.ui.dialog-titlebar').live('click', function() {});
由于jQuery UI将向DOM添加元素以创建对话框,因此在DOM准备就绪后进行绑定的初始选择时,将不会选择它们。
答案 2 :(得分:0)
以下是我的表现方式:
$(".ui-dialog").on('click','.ui-dialog-titlebar', function() {});
注意以上内容适用于所有对话框。
对于特定的对话框,您可以这样做:
$(".ui-dialog").on('click','.ui-dialog-titlebar', function() {
var d=$(this).next();
if(d.attr('id')=='dialogIdHere'){
//do stuff here
}
});