jQuery.on(“点击”)-.live()的替代方案

jQuery .on("click") - alternative to .live()

本文关键字:方案 live 点击 jQuery on      更新时间:2023-09-26

在我的项目中,我将几个按钮附加到div:

$(".tab-content").append("<div class='landing_content'><button class='off-screen-nav-button btn btn-info btn_edit' data-effeckt='effeckt-off-screen-nav-right-overlay'>Edit</button></div>");

然后用以下代码收听点击:

$(".tab-content").on("click",".btn-edit",function(){
  console.log('edit');
});

为什么不起作用?我习惯于使用.live(),但它已被弃用。

谢谢。

在标记中有btn_edit,在jQuery中有btn-edit

更改标记class以匹配jQuery选择器,如下所示:

$(".tab-content").append("<div class='landing_content'><button class='off-screen-nav-button btn btn-info btn-edit' data-effeckt='effeckt-off-screen-nav-right-overlay'>Edit</button></div>");

您的方法不起作用的原因(除了关于btn-edit的内容外)可能是因为您试图将事件绑定到DOM中实际不存在的元素,直到它被附加之后,才有LIVE,它已经贬值,但您可以改为这样做:

//bind the event to the document which always exists and specify the selector
//as the second argument 
$(document).on("click",".tab-content .btn-edit",function(){
    console.log('edit');
});

希望这有助于在这里查看文档中的jQueries以获得更多帮助。