我有一个切换功能。当它第一次被触发时,由于返回false,链接不会激活 - 这很好。
但是在切换之后链接确实开火了!我也不需要它。有什么帮助吗?
function viewSHowHide() {
if (document.getElementById("viewSHowHide").innerHTML=="Hide Question") {
document.getElementById("viewSHowHide").innerHTML="View Question";
HideQ();
} else {
document.getElementById("viewSHowHide").innerHTML="Hide Question";
viewQ();
}
}
HTML
<a title="View Question" id="viewSHowHide" onclick="viewSHowHide(); return false" href="">View Question</a>
答案 0 :(得分:1)
以下是您尝试执行http://jsfiddle.net/ericjbasti/fnd9C/
的工作示例我把它切换到了<span>
所以我没有必要在默认情况下对抗链接想要做的事情,并且稍微清理了一下代码。
HTML:
<span title="View Question" id="viewSHowHide" onclick="viewSHowHide();">View Question</span>
JavaScript:
viewSHowHide = function(){
var showHide=document.getElementById("viewSHowHide");
if (showHide.innerHTML=="Hide Question") {
showHide.innerHTML="View Question";
HideQ();
} else {
showHide.innerHTML="Hide Question";
viewQ();
}
}
答案 1 :(得分:1)
尝试使用
中的href="javascript:void(0)"
<a title="View Question" id="viewSHowHide" onclick="viewSHowHide(); return false" href="javascript:void(0)">View Question</a>
答案 2 :(得分:0)
我想......
所有你需要的
if (event.preventDefault) { //check if browser supports preventDefault
event.preventDefault();
} else { //if no support -> IE lte 8
event.returnValue = false;
}
或速记: event.preventDefault? event.preventDefault():event.returnValue = false;
将其包装在一个函数中以便更快地使用,例如:
<a href="#something" onclick="prevent();">click prevent</a>
<script>
prevent = function() { // in this case no need to pass 'event'
event.preventDefault ? event.preventDefault() : event.returnValue = false;
console.log('event prevented :)');
}
</script>
<强>为什么强> 所有现代浏览器都支持event.preventDefault,但IE从v9支持它 对于较旧的IE版本(这是jQuery使用的),你可以连接到事件的returnValue。
* jQuery代码供参考
jQuery.Event.prototype = {
[...]
preventDefault: function() {
var e = this.originalEvent;
this.isDefaultPrevented = returnTrue;
if ( !e ) {
return;
}
// If preventDefault exists, run it on the original event
if ( e.preventDefault ) {
e.preventDefault();
// Support: IE
// Otherwise set the returnValue property of the original event to false
} else {
e.returnValue = false;
}
},
[...]
我希望我在这里没有犯任何错误;) 祝你好运......