jquery – $(document).on(“click”…不工作?

有没有一个众所周知的错误,我可以在这里?

我有一个使用.on()的脚本,因为一个元素是动态生成的,它不工作。只是为了测试它,我用动态元素的wrap替换了选择器,它是静态的,它仍然不工作!当我切换到普通的旧。单击包装它工作,但。
(这只是不会为动态元素工作,显然,一个重要。)

这工作:

$("#test-element").click(function() {
    alert("click");
});

这不:

$(document).on("click","#test-element",function() {
    alert("click");
});

更新:

我右键点击,并在Chrome中“检查元素”只是仔细检查的东西,然后点击事件工作。我刷新,它没有工作,检查元素,然后它的工作。这是什么意思?

解决方法

您正在使用正确的语法绑定到文档,以侦听id =“test-element”的元素的点击事件。

它可能不工作,由于以下之一:

>不使用最新版本的jQuery
>不要在DOM内部包装你的代码
>或者你正在做一些事情,导致事件不会冒泡到文档上的侦听器。

要在声明事件侦听器之后捕获创建的元素上的事件,您应该绑定到父元素或层次结构中较高的元素。

例如:

$(document).ready(function() {
    // This WILL work because we are listening on the 'document',// for a click on an element with an ID of #test-element
    $(document).on("click",function() {
        alert("click bound to document listening for #test-element");
    });

    // This will NOT work because there is no '#test-element' ... yet
    $("#test-element").on("click",function() {
        alert("click bound directly to #test-element");
    });

    // Create the dynamic element '#test-element'
    $('body').append('<div id="test-element">Click mee</div>');
});

在此示例中,只有“绑定到文档”警报将会触发。

JSFiddle with jQuery 1.9.1

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...