2

リンクがあるとしましょう:

<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を変更せずにこれを可能にしています。

4

4 に答える 4

4

ハンドラーに使用return stopLight()します。mplungjan が彼のコメントで示唆したようにonclick

于 2012-12-14T16:07:08.880 に答える
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
}​

乾杯。

于 2012-12-14T16:09:56.223 に答える
2

jQuery と event.preventDefault() メソッドでこれを行うことができます。

$('a.yourLink').on('click',function(e){
  if (stopLight()){ 
    e.preventDefault();
  }
});

stopLight が true の場合、デフォルトの動作<a>が防止されます。それ以外の場合は、通常どおり実行されます

于 2012-12-14T16:09:56.287 に答える
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;) 
  });
});
于 2012-12-14T16:13:23.323 に答える