2016-08-28 9 views
1

jQueryを使用して画像をクリックする際に関数を呼び出そうとしています。次のようにimgのjQuery .onクリックイベントハンドラ

私のhtmlコードは次のとおりです。

<div id="fixed-navbar"> 
      <div class="nav-left"> 
       <img id="back" src="back.png"> 
      </div> 
... (some other code) 
</div> 

として、私は、スクリプトを書いています上記画像のクリックで関数を呼び出す:

$("#back").on('click', '.nav-left', function(e) { 
       e.preventDefault(); 
       window.history.back(); 
}); 

なぜこの作業ではないでしょうか?

PS:これらのdivのは、動的

答えて

3

あなたは.nav-left代わりの#back自体にイベントを結合している追加されます。

$("#back").on('click', function(e) { 
    e.preventDefault(); 
    window.history.back(); 
}); 

自分のイメージを動的にdiv.nav-left要素内に生成されている場合は、あなただけのセレクタを逆にする必要があります。

$(".nav-left").on('click', '#back', function(e) { 
    e.preventDefault(); 
    window.history.back(); 
}); 

すべてあなたのコンテンツが動的である場合、あなたはそれをこの方法で行う必要があります。

$("body").on('click', '#back', function(e) { 
    e.preventDefault(); 
    window.history.back(); 
}); 

代わりのbody、あなたは動的にページに追加されていない最も近い外側の親要素を指定することができます。

+1

最後の1つが機能しています。すべてのコンテンツが動的だったからです。実際には、これはページロード中に追加しているヘッダーファイルです。とにかくありがとう:) –

+0

もう1つ、これは、