jquery - 理解 JQuery 选择器的问题

标签 jquery css-selectors

例如,如果我点击 add+ 9 次,我将有 10 个框。但之后,只有当A单击最后一个框时,它才会隐藏。 (我想通过单击该框来隐藏特定框)。顺便说一句,单击(并消除)最后一个框后,另一个框将不会以任何方式隐藏 我的问题是什么?

$(document).ready(function(){
    $("#add").click(function(){
        $(".test:last").clone().insertAfter(this);
    })
    $(".test").click(function(){
        $(this).hide("slow");
    })
})

<div id="add">ADD+</div>
<div class="test" style="border:1px solid black; width:70px; height:25px;">
    box
</div>

最佳答案

因为您只是连接文档加载时存在的那个。改变

$(".test").click(function(){
    $(this).hide("slow");
})

$(".test").live('click', function(){
    $(this).hide("slow");
});

click 用于将事件连接到已经存在的元素。使用live,您可以更具推测性,并说“为任何已存在的事件、我稍后添加的与此选择器匹配的任何事件 Hook ”。如果您想要 live 的功能,还有一个 delegate 会很有用,但它适用于特定元素的后代。

详细信息:

关于jquery - 理解 JQuery 选择器的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4900898/

相关文章:

javascript - 附加的后面元素不删除

jquery - 防止所有幻灯片同时显示光滑轮播jquery

python - 如何使用 Selenium 将鼠标悬停在多个元素上并通过 Python 提取文本

javascript - 长度不读的 JQuery 密码验证?

jQuery.browser 还是 jQuery.support?

html - 空列表的 CSS 选择器,忽略空格或 div

html - :nth-child doesn't work

html - 输入:有效不适用于输入电子邮件

jQuery:如何测试类的*不存在*?

javascript - jQuery 从数字字符串创建 int 数组