相同的JQuery函数适用于一个链接,而不适用于另一个链接
Identical JQuery function is working for one link, not another
我有一个函数:
<script type="text/javascript">
$(function() {
$('#subbutton').click(function() {
$('#subbutton').hide();
});
});
</script>
它只是让这个按钮在点击时隐藏起来:
<a id="subbutton" class="button" href="javascript:TINY.box.show({url: 'follow',width:600,height:170,openjs:'initPopupLogin',opacity:30})"><span>Button</span></a>
现在,如果我尝试使用相同的功能,但在页面后面有一个链接,它就不起作用了(我已经删除了原来的按钮)下面是代码:
<div id="subbutton">
<a href="#"><span>Button</span></a>
</div>
我试着把id放在锚里,在跨度里,这个链接似乎什么都不起作用。知道为什么不起作用吗?(我已经删除了原来的按钮,所以第二个按钮是页面上唯一的id)
请尝试使用.on来附加事件处理程序。我怀疑在您附加事件处理程序时按钮不在dom中。
$(document).on('click', '#subbutton', function() {
$(this).hide();
});
既然我理解了问题,请编辑。您最好给按钮一个类,并使用类选择器。
.hide
不会从页面中删除元素,因此您的选择器仍将在第一个元素上匹配。您需要使用.remove
从DOM中删除第一个元素,以便第二个选择器可以工作。
此外,还有一些jQuery优化。不需要对$("#subbutton")的嵌套调用。往好了说,它更难维护,往坏了说,如果把它放在一个大循环中,可能会导致性能问题。这样更好。
$(function() {
$('#subbutton').click(function() {
$(this).remove();
});
});
您在此之后缺少一个":
<a id="subbutton" class="button
Id必须是唯一的。那么它应该会起作用。
将您的javascript更改为:
$(function() {
$('#subbutton').live("click",function() {
$(this).hide();
});
});
http://jsfiddle.net/W2agx/
- 也不要重复使用id。为希望能够一起选择的多个DOM元素使用一个类
相关文章:
- Facebook共享链接适用于用户,但不适用于粉丝页面管理员
- 链接适用于所有浏览器,除了 safari(php 代码)
- “add”函数适用于不同的链接/参数组合
- 将函数应用于页面上的所有链接
- Javascript then() 链接 - Deferred 第二个 then() 对应于哪个
- 我如何完善这个Javascript代码,使其只适用于来自图像的链接(而不是来自文本的链接)
- Node.js/Socket.io 中的 Web 套接字支持,适用于旧版浏览器
- 我可以让浏览器专注于这些链接吗?
- 指令“链接”不适用,如我所愿
- 获取链接 href 并将其应用于另一个链接 jQuery
- D3:方向图类似于树形布局,但带有反向链接
- 平滑滚动仅适用于同一页面,而不适用于外部链接
- 将字符串中的 url 替换为 href 链接 - 适用于多种地址类型
- 滚动后删除锚链接-也适用于其他页面的链接
- 用javascript清除链接只适用于第一个链接
- 相同的JQuery函数适用于一个链接,而不适用于另一个链接
- 动画滚动锚只适用于第一个链接
- 如何检查一个类是否存在于链接中
- 如果至少有一个输入不是原始的,我如何将CSS应用于链接,如果所有输入都是原始的,我如何撤销该更改?
- fanybox的问题.Iframe只适用于网站上的第一个链接