jquery.on不起作用

jquery.on不起作用,jquery,html,Jquery,Html,在我的DOM中,这是动态生成的: <li>333107 (<span id="pos_3488">1</span>) <span><a id="del_3488" href="#" id_mod="3488"> - </a></span></li> 但是,当您单击HTML元素时,没有对“单击事件”的调用。在添加侦听器之前,是否确保生成了HTML?下面的代码似乎正在运行。这可能是比赛条件的问题。可能会

在我的DOM中,这是动态生成的:

<li>333107 (<span id="pos_3488">1</span>)
<span><a id="del_3488" href="#" id_mod="3488"> - </a></span></li>

但是,当您单击HTML元素时,没有对“单击事件”的调用。

在添加侦听器之前,是否确保生成了HTML?下面的代码似乎正在运行。这可能是比赛条件的问题。可能会设置一个
超时
。在添加侦听器之前

$(函数(){
setTimeout(函数(){
$(“a[id^='del_'])。在(“单击”上,函数(e){
var id_modelo=$(this.attr(“id_mod”);
var id_bloque=$(this.parent().attr(“id”);
日志(“命中:”,id_modelo);
});
},2000);//在设置事件侦听器之前,请等待2秒
});

  • 333107(1)

此代码将帮助您

如果您动态加载数据,而不是使用

  • $(文档)。在(“单击”、…)
  • 你在这一行也犯了错误。它是
'a[id^=del_]'
$(文档)。在(“单击”、'a[id^=del_]'上,函数(e){
e、 预防默认值();
var id_modelo=$(this.attr(“id_mod”);
var id_bloque=$(this).parent().sibbins(“span”).attr(“id”);
console.log(id_modelo);
控制台日志(id\u bloque);
});

  • 333107(1)
  • 在这种情况下,我几乎不推荐“事件委派”模式

    这是代码中的解决方案:

    $(document).on("click", "a[id^='del_']", function(e) {
      var id_modelo   = $(this).attr("id_mod");
      var id_bloque   = $(this).parent().attr("id");
    });
    
    事件应该分配给一个常量DOM元素,在本例中,我使用的是document,但您可以将其更改为另一个


    事件委派是这类问题的根本解决方案,angular、react等框架将此模式用作性能解决方案,因为它们经常更改DOM。

    浏览器控制台中有错误吗?脚本只设置变量,没有其他错误。您希望它做什么?编写一个警报或console.log来验证它是否真的被调用。。。您只是在单击事件句柄中设置变量。您的代码运行正常,在网页上看不到任何内容,因为您的代码只是将值设置为变量。如果将警报或记录值放入控制台,您将发现代码正在工作。
    $(document).on("click", "a[id^='del_']", function(e) {
      var id_modelo   = $(this).attr("id_mod");
      var id_bloque   = $(this).parent().attr("id");
    });