jquery.on不起作用
在我的DOM中,这是动态生成的: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?下面的代码似乎正在运行。这可能是比赛条件的问题。可能会
<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");
});