我有以下内容:
<div id="songs">
<ul>
<li> <a href="(a real link)">song 1</a></li>
<li> <a href="(a real link)">song 2</a></li>
</ul>
</div>
我希望div#songs中的所有链接都自动设置为使用javascript返回false(这样只有在禁用javascript时链接才会打开);我不想在每个链接上添加onclick="return false"
。
我对Javascript一点都不强,所以任何帮助都非常感谢。谢谢。
通过这个^^的ETA我的意思是除非你列出整个代码,否则我不会知道你在说什么。对此感到抱歉,再次感谢您的帮助。
答案 0 :(得分:1)
只需向所有链接添加一个事件监听器,如下所示:
var root = document.getElementById('songs'),
links = root.getElementsByTagName('a'),
doNothing = function(e) {
e.preventDefault();
};
for (var i = 0; i < links.length; ++i) {
links[i].addEventListener('click', doNothing, false);
}
这适用于IE&gt; = 9;对于旧版本,请使用attachEvent
代替addEventListener
或修改onclick
属性,后者更为普遍理解。
答案 1 :(得分:0)
假设您的目标是现代浏览器(兼容ES5)
1)获取歌曲中的所有链接(“a”标签)
var links = document.querySelectorAll('songs a'),
function noop(e) { e.preventDefault() },
forEach=Array.prototype.forEach;
2.a)如果您只打算禁用点击
forEach.call(links,function(theLink){theLink.onclick=noop});
2.b)如果您打算添加其他点击事件处理程序,那么
forEach.call(links,function(theLink){theLink.addEventListener('click', noop, false);});