Blockui正在分离事件

时间:2011-11-08 09:52:59

标签: javascript jquery javascript-events blockui

我正在使用块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是否有任何缺点,即我的上述方法有更好的解决方法吗?

由于

1 个答案:

答案 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