jquery委托的问题

问题描述 投票:0回答:1

我想知道如何触发由父div(因此委托)中动态加载的clicked元素触发或直接加载时触发的唯一Handler。

首先,<a class="manage-lnk>Manage</a>元素被直接加载,但之后,进一步被动态加载

html

    <div id="viewContainer"> 
       <a class="manage-lnk">Manage</a>
    </div>

lib.js。

我必须找到此技巧才能在两种情况下都可以使用

 $(document).on('click','.manage-lnk',function(){
     alert(1);
 });

  $('.manage-lnk').on('click',function(){
     alert(1);
  });

我想要的是触发alert(1),尽管该元素是否已动态加载。

((PS:对不起,我是说英语,我会说法语)

javascript jquery
1个回答
-1
投票

触发此:

$('.manage-lnk').on('click',function(){
     alert(1);
  });

每次您动态添加其中之一:

 <div id="viewContainer"> 
       <a class="manage-lnk">Manage</a>
    </div>

如果在JS触发后动态加载,则不会附加事件。

将其添加到可以在HTML中动态添加的代码之后立即调用的函数中很有意义:

function addNewHtmlSectionFunctionName() {
  //Code to add div dynamically
}

function attachClickEventToManageLnk() {
    $('.manage-lnk').on('click',function(){
         alert(1);
      });
}

$(function() {
    addNewHtmlSectionFunctionName();
    attachClickEventToManageLnk();
});
© www.soinside.com 2019 - 2024. All rights reserved.