我正在使用块ui来阻止页面并捕获一些信息:
在消息div上,我有2个按钮。确定并取消。
如果我在页面加载上设置点击事件:
$('#title-picker input[name=ok]').click(ok);
$('#title-picker input[name=cancel]').click(cancel);
调用$ .blockUI后不会触发事件。但是,如果我使用.live方法,它可以按预期工作。
$('#title-picker input[name=ok]').live('click',ok);
$('#title-picker input[name=cancel]').live('click',cancel);
我假设它使用的机制删除并将div添加到DOM,这必须是分离原始事件处理程序的内容。我之前使用过块ui的早期版本,但它还没有这样做。我在文档中看不到任何明显的东西。
那么,我的推理是否正确?
使用.live是否有任何缺点,即我的上述方法有更好的解决方法吗?
由于
答案 0 :(得分:0)
您可以使用委托代替实时
$('#title-picker').delegate('input', 'click', function(){
if (this.name == 'ok') {
ok();
} else {
cancel();
}
//or even:
// window[this.name]();
//if needed use the scope where your functions are defined
//instead of the window element
});
p.s。:在文档中提到:
BlockUI插件的第2版有什么变化?
Elements are no longer removed from the DOM when unblocking