2011-08-02 17 views
0

マイボタンは、初めてクリックされたときにのみクリックされます。その後、クリックイベントはすぐに親のonclickに伝播されます。ここでは、ボタンのonclickのは、次のとおりです。Javascript:stopPropagationは初めて動作しますか?

$('.clickable .moveUp').click(function(e) { 
     moveUpWorkoutExercise($(this)); 
     e.stopPropagation(); 
    }); 

とHTML概要:

<div class="clickable" onclick="toggleExerciseDetails(311,false)"> 
    <a class="moveUp disabled" title="Move this exercise up"></a> 

にはどうすればイベントの仕事を毎回だけでなく、最初の時間を作ることができますか?ありがとう!

+0

あなたが伝播が再び起動するようにしたいですか? – Matt

+1

ボタンがありません。コンテンツを持たないA要素を含むdiv要素がありますが、それをクリックすることはできません。リスナーはdivとAに接続されているため、div応答のリスナーのみが表示されている可能性があります。 * toggleExerciseDetails *は何をしますか? – RobG

+0

@RobG - リスナーはアンカー要素にのみ添付されます( '$( 'clickable.moveUp') 'は、クラス" clickable "の子孫クラス" moveUp "を持つ要素を意味します。 )、divには独自の別のonclickハンドラがインラインに設定されています。空のアンカーをクリックすることができないことをうまく捕まえますが、これは単純すぎる単純な例かもしれません。 – nnnnnn

答えて

0

moveUpWorkoutExercise()関数内でエラーが発生した場合、イベントハンドラの実行は、e.stopPropagation();行に到達する前に停止します。その機能に、2回目以降のクリックで中断する可能性のあるものはありますか?

(それはそれは本当に根本的な問題が修正されていない「仕事」ない場合は、仮に最初e.stopPropogation()を入れて試してみて、何が起こるか見て、しかし、可能性があります。)

関連する問題