1
OK、そう、私のコード:のjQuery
HTML:#pictureはjQueryのhtmlの()で追加された内部にあるので、私は上で必要なもの
<div id ="close"></div>
<div id="mask">
<div id="picture">
<div id="prev"></div>
<img src="" />
<div id="next"></div>
</div>
</div>
すべて( )(delegate)この要素にいくつかの関数を追加します。
のjQuery:
$('#close, #mask').on("click", function(){
closeImg();
});
$('#picture').on("click", '#prevImg', function(){
prevImg();
});
$('#fixed').on("click", '#nextImg', function(){
nextImg();
});
#nextImg /#prevImgに私をクリックすると、関数closeImg()があまりにも呼ばれていました。そして、私はそれを失うことはありません。 #nextImg /#prevImgからハンドラcloseImg()を削除するにはどうすればよいですか?nextImg()/ prevImg()を呼び出しますか?私は、私はオフ()を使うべきだと思いますが、私はそれを理解していないし、似たような例は見つけられません。そして私の全努力は失敗しました。
イベントハンドラが委任されているので、これはうまくいきません。これは、イベントが既に捕捉されるためにDOMをバブリングしたことを意味します。ここで 'stopPropagation()'を呼び出すことはできません。私は同じ間違いを作った: –
@Phaniクマールそれは働く、どうもありがとう。私はstopPropagation()について考えましたが、間違った方法で使用しました。 – Eva
私はRory McCrossanと似ていると思っていました。正直言って、私はそれがうまくいくのは驚きです。私はそれを慎重に分析する必要があります。しかし、それは動作します:-) – Eva