如果该事件附加到不存在的元素,则可以触发事件

时间:2012-05-18 20:15:21

标签: javascript security events

因此,这个问题有两个重要的细节:

  1. 在document ready的回调函数范围内
  2. 该事件附加到的元素实际上并不存在于DOM中
  3. 这是场景的直观表示

    $(document).ready(function() {
        $('#myNonExistentElement').on('click', function() {
            //do something
        });
    });
    

    在这种情况下,是否可以以编程方式触发点击事件(通过控制台或其他内容)?

2 个答案:

答案 0 :(得分:2)

我认为简单的答案是否定的。

但是,有两种情况可能适合您的问题:

1)如果您只想执行事件处理程序代码,请使用命名函数(而不是匿名函数)并在需要时调用它。

2)如果要将单击处理程序绑定到DOM中尚不存在但尚未知道的对象,则可以使用以下代码:

$(document).ready(function() {
  $('body').on('click', '#myNonExistentElement', function() {
    //do something
  });
});

请参阅http://api.jquery.com/on/

上有关委派活动的部分

答案 1 :(得分:1)

如果您尝试将事件绑定到通过jQuery不存在的元素(或至少.on),则不会绑定任何新事件。

示例案例here

*事件代码从here被盗,因为我很懒。