0
クリックオブザーバでPrototypeJSのe.stop()関数を使用しています。これはいくつかのチェックを行い、いくつかの条件を満たす場合はリンクを動作させたい他のすべての要素が発射されるのを止めてください。例えばPrototypeJSのリンク動作が正常に終了した場合
:
<script type="text/javascript">
document.observe('dom:loaded',function(){
if ($$('a') != undefined) {
$$('a').invoke('observe','click', function(e) {
if (SOME CONDITION){
//NORMAL LINK FUNCTIONALITY
//STOP PARENT
} else {
e.stop();
//CALL FUNCTION
}
});
}
if ($$('.parent') != undefined) {
$$('.parent').invoke('observe','click', function(e) {
alert('test');
});
}
});
</script>
<div class="parent">
<a href="javascript:popUp('test.html')">Test 1</a>
<a href="test.html">Test 2</a>
<a href="test.html" target="_blank">Test 3</a>
</div>
何が起こることはすべてのリンクのクリック時に親火災です。 e.stop()はそれを止めますが、通常のリンク動作も停止します。リンクが正常に処理されるように指示する方法はありますか?
問題は、親オブザーバを停止する必要があることです。 – fanfavorite
イベントを停止し、SOME_CONDITIONの場合はtrue、そうでない場合はfalseを返します。 – dievardump
残念ながらそれは動作しません。 trueを返すかどうかにかかわらず、リンクを完全に停止します。 – fanfavorite