链接:不是jquery.on中的选择器

时间:2014-03-24 06:00:03

标签: javascript jquery twitter-bootstrap modal-dialog

我有一个通过listjs动态管理的行表。我已经使这些行可单击以基于数据属性(数据模态)打开Bootstrap模式。这一切都正常,除了链接出现在行的列中。锚都在射击,模态正在打开。

为了防止这种情况,我使用了以下代码,它处理了最初加载的元素:

$("[data-modal]").on("click", "a:not(.open-disabled)", function(e) {//open modal code}

但正如预期的那样,这并不会绑定到动态注入的行或div。

所以我改变了我的代码以尝试绑定到$(文档),但是我无法让:not选择器正确链接 - 选择器没有被正确识别而模态没有开。

以下是我将代码更改为:

$(document).on("click", "[data-modal], a:not(.open-disabled)", function(e) {}

问题: 答:如果存在一个被点击的锚子元素,如何链接上面的选择器以防止模态打开。

B中。有没有更好的方法来防止模态打开?

2 个答案:

答案 0 :(得分:0)

试试这个,

$(document).on("click", "[data-modal] > a:not(.open-disabled)", function(e) {}
                         //-----------^ use child selector here

答案 1 :(得分:0)

我通过实施此处描述的方法找到了解决方案:https://stackoverflow.com/a/8696420/2659318

以下是生成的代码:

  $(document).on("click", "[data-modal]", function() {
    $(this).modal();
  });

  $(document).on("click", "a.open-disabled", function(e) {
    if (!e.stopPropagation) {
      e.cancelBubble = true;
      return;
    }

    e.stopPropagation();
  })