说我有一个链接:
<a href="http://www.example.com">Example!</a>
我想保持链接完整,但我想要一个onclick事件来判断该链接是否可点击
<a onclick='stopLight()' href="http://www.example.com">Example!</a>
function stopLight() {
// conditional logic
// return true or return false
}
所以如果stopLight()== true,那么链接工作,如果stopLight()== false,则链接不起作用。 在不改变href的情况下实现这一点,因为我宁愿不
答案 0 :(得分:4)
对return stopLight()
处理程序使用onclick
正如mplungjan在他的comment
答案 1 :(得分:2)
为了削减默认操作:
stopLight = function (e) {
window.event.preventDefault();
}
这可以防止事件发生。
所以你可以这样做:
<a onclick='isStopLight()' href="http://www.example.com">Example!</a>
在JS中
isStopLight= function(){
if(stopLight()){
window.event.preventDefault();
}
}
stopLight = function () {
// conditional logic
// return true or return false
}
干杯。
答案 2 :(得分:2)
您可以使用jQuery和event.preventDefault()方法执行此操作:
$('a.yourLink').on('click',function(e){
if (stopLight()){
e.preventDefault();
}
});
如果stopLight为true,将阻止<a>
的默认行为,否则执行正常
答案 3 :(得分:1)
普通JS
<a onclick='return stopLight()' href="http://www.example.com">Example!</a>
window.onload=function() {
document.getElementById("stoplight").onclick=function() {
// conditional logic
// return true or return false
}
}
<a id="stoplight" href="http://www.example.com">Example!</a>
的jQuery
<a id="stoplight" href="http://www.example.com">Example!</a>
$(function() {
$("#stoplight").on("click",function(e) {
// conditional logic
if (false condition) e.preventDefault(); // (or return false;)
});
});