首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jquery单击后显示一个按钮

问使用jquery单击后显示一个按钮
EN

Stack Overflow用户
提问于 2016-07-09 18:53:09
回答 2查看 54关注 0票数 0

我对jquery很陌生,我正在努力使这段代码工作,但没有办法:

​

代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="add">Add</button>

<script>
    $(document).ready(function(){
        $("button.add").click(function() {
            $(this).after('<div><button class="remove">Remove</button></div>');
        });

        //Remove items from cart
        $("button.remove").click(function(){
            $(this).fadeOut();
        });

    });
</script>

​

当我尝试在初始代码中的<div><button class="remove">Remove</button></div>之后添加下一行add button时,一切都正常工作。每当我使用JS代码添加新的remove按钮时,它都能工作,但我不能删除这些按钮。

请帮我修一下。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-09 19:01:20

这被称为事件委托。

您可以看到如下所示: jQuery在页面启动时将整个文档对象模型加载到变量或对象中。每次jQuery函数想要使用元素时,它都会搜索该变量或对象来查找它。但是在代码中,元素是在创建变量或对象之后添加的,因此jQuery无法与其交互,因为它不知道这个元素。

一个简单的解决方案:

代码语言:javascript
复制
$( "#parentDivOrElement" ).on( "click", "button.remove", function( event ) {
    $(this).fadeOut();
});

这基本上让我们在更新之后,让jQuery在当前DOM中找到元素。您应该用正确的ID或类替换#parentDivOrElement。

更多关于事件委托的信息:https://learn.jquery.com/events/event-delegation/

票数 1
EN

Stack Overflow用户

发布于 2016-07-09 19:02:33

使用:

代码语言:javascript
复制
$(body).on('click', 'button.remove', function(){
// do something
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38285215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档