javascript - Jquery 点击事件的 Html 更新

标签 javascript jquery html

我有一个选项卡式 DIV 元素,第一次单击时会发生变化,但之后会失去功能

HTML:

<div id="holder">
<ul style="list-style:none; margin:0; padding:0;">
<li><a name="CondLink"id="onlink">Link1</a></li>
<li><a name="EffLink">Link2</a></li>
</ul>
</div>

Javascript(Jquery):

$('a[name=CondLink]').click(function(){
    $('div[id=holder]').html('<ul style="list-style:none; margin:0; padding:0;"><li><a name="CondLink" id="onlink">Link1</a></li><li><a name="EffLink">Link2</a></li></ul>');
});

$('a[name=EffLink]').click(function(){
    $('div[id=holder]').html('<ul style="list-style:none; margin:0; padding:0;"><li><a name="CondLink">Link1</a></li><li><a name="EffLink" id="onlink">Link2</a></li></ul>');
});

单击任一选项卡仅在第一次单击时正确更新 HTML,但不会在任何后续单击时执行任一功能。

(注意:控制台不会给我任何错误,但也不会在后续点击时在任何一个点击函数内命中断点)

最佳答案

您的进一步点击事件不起作用,因为您覆盖了“holder”的子元素。 基本上,您删除它们并添加没有绑定(bind)单击事件的新元素。

简单的解决方案:

替换这个:

$('a[name=CondLink]').click(function(){
   // code...
});

这样:

$(document).on('click', 'a[name=CondLink]', function(e) {
    // code...
});

关于javascript - Jquery 点击事件的 Html 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37659789/

相关文章:

javascript - 使用javascript的百分比计算器

javascript - Jquery移动链式弹出动态定位

javascript - Coffeescript三元if语句错误逻辑

javascript - jQuery Slider(div 粘在一边)

javascript - JS 错误 - 脚本无响应

javascript - HTML 输入类型 ="time"只允许 15 分钟间隔

jquery - 允许用户将选项添加到自动完成列表(预先输入 Bootstrap )

html - 使用 CSS 和媒体查询替换图像

html - 在元素之间显示伪元素

jquery - 如何阻止点击事件创建多个元素?