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

前端之家收集整理的这篇文章主要介绍了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相关文章