()的事件;复制click()事件;在jQuery中动态加载的元素

时间:2018-08-03 12:26:10

标签: jquery web mouseevent

下午好,我有一个我无法解决的问题,我在我的一个项目中使用了jQuer,并且正在用ajax加载部件,那么DOM中的任何事件都可以正常工作,当我遇到问题时就出现了对通过ajax加载的元素执行事件是很好的例子。

$('element').click(function(){ /*funcion a ejecutar.*/  });

问题:

(function($){
     $(document).ready(function(){
          $(document).on('click','elemento',function(){
                /* funcion a ejecutar*/
             });
        });
})(jQuery);

问题是,当我使用()上的方法单击“元素”时;该动作执行了两次,这是我在放置计数器时发现的,因此该动作只能执行一次。

 (function($){
     $(document).ready(function(){
      var inicio=0;
        $(document).on('click','elemento',function(){
          if( inicio == 0){ 
             /*funcion a ejecutar*/
             inicio++ /*cambio inicio para que solamente se ejecute una vez*/
          }
       });
    });
})(jQuery);

通过此操作,您可以在单击时解决问题,问题是此功能适用于同一类的不同元素。

有人可以告诉我错误在代码段中的什么位置,或者是将click()与on()结合使用的更好方法,或者是访问动态创建的元素的另一种方法。

谢谢。

1 个答案:

答案 0 :(得分:0)

尝试一下

$(document).on('click','.elemento',function(e){
  e.stopPropagation();
  e.preventDefault();
  /*Your code here*/
});

编辑:同样,如果要将事件绑定到具有类的元素,请不要忘记在类名称之前的.符号。就您而言,.elemento