我正在建立一个聊天网站,我想创建一个JavaScript超链接,使发送按钮聊天不可用。所以在我的聊天中,我可以通过[url = http://www.site.com] text [/ url]制作超链接。但是javascript仍然适用于它们。代码是:javascript:document.getElementById("sendbutton").disabled = true; void(0)
。所以我在我的地址栏中测试了这个代码,并且它在执行命令时成功完成并且它会改变页面。但是,当我把它作为我的超链接并点击它时,它将加载一个空白的白页,其中包含"禁用"在上面。我做错了什么?为什么void(0)命令在我的地址栏中工作,但在放入超链接时却没有?
答案 0 :(得分:1)
要防止锚标记执行其默认操作(更改文档位置),您必须取消其onclick
事件,如下所示:
<a href="..." onclick="return false;">do it</a>
这种方式无论锚的href
是什么,都不会重定向页面。
但是,它也会取消您已经href
的所有JavaScript代码,因此您需要在onclick
事件本身中执行所有操作:
<a href="#" onclick="document.getElementById('sendbutton').disabled = true; void(0); return false;">do it</a>
答案 1 :(得分:0)
您可以使用 jQuery 点击回调来执行此操作。
$("#sendbutton").click(function(event) {
event.preventDefault(); // Should stop the page reloading.
}
请注意,从此回调中返回false
相当于调用preventDefault()
和stopPropogation()