2012-02-17 11 views
0

jQueryの.click()イベントと少し混乱しています。私はスパンの中のイメージにイベントを使用しようとしています。これは、スパンとイメージを含むHTMLの行です。jQuery .click()イベント

<span class="content-message-element"><a href=""><img class="content-message-icon" src="./images/icon_close.png" alt="Close Message" /></a></span> 

ご覧のとおり、画像には「content-message-icon」というクラスがあります。私はこれをjQueryコードで使用しました(ところで、jQuery 1.7.1が含まれています)が、何も起こりません。イベントはまったくトリガされません。

.click()イベントは、特定の種類の要素に限定されていますか?

<script type="text/javascript"> 
     $(".content-message-icon").click(function() { 
      alert("Handler for .click() called."); 
     }); 
    </script> 

これは私のjQueryです。何か助けに感謝します。

+0

クリック機能の前に 'document.ready'コールを配置してみてください。 – prasvin

+0

私は、クラスで.clickイベントが動作しないと思います..あなたはIDだけを使うべきです... – thecodejack

+4

@コードジャック、それは単にそうではありません。 clickイベントは記述されたとおりに動作します。 –

答えて

2

uはDOMの準備が整う前に、クリックイベントを発火rのことが起こり得るので、同じように、文書準備がコードに入れてみてください。これは、あなたが他のを試してみてください= jQueryのバージョン..

考えられる原因。これは、作業動作するはずです。この

<script type="text/javascript"> 
    $(".content-message-icon").live("click", function() { 
    alert("Handler for .click() called."); 
    }); 
</script> 
+0

@ CodeJackのクリック機能には、ID、クラス、DOM要素lykアンカータグ、div、スパンなど何かに対して発動できる制限はありません – Vivek

0

空のタグを取り出してみてください。その行動はここで干渉しているかもしれません。

3

clickイベントは正常に動作するはずです。 jsFiddleと

$(function() { 
    $(".content-message-icon").click(function() { 
     alert("Handler for .click() called."); 
    }); 
}); 

例:http://jsfiddle.net/vGPfu/1/

+0

素晴らしいです、完璧に動作します!私はjQueryに行くための小さな道を持っていると思う:P – Blake

+0

誰もがどこかで起動しなければならない:)。なぜコードをドキュメントレディ機能に入れなければならないのかを理解することは良いことです。[このページ](http://api.jquery.com/ready/)を読んでもう少し詳しく説明してください。 –

1

をANS使用 ブラウザの問題=すべてのブラウザを試す

$(document).ready(function() 
{ 
    ...click event 
}); 
0

を使用していない

$(document).ready(function(){ 
     $('.content-message-icon').click(function(){ 
       //add click logic here 
     }); 
}); 
0

を試してみてください

$(document).ready() 
1

その他の答えはjQueryのドキュメントの準備ができて使用して言及しているこのjqueryのに囲み、それを行うには、他の方法である理由、またはどのような誰も(まだ)について説明していません。したがって、要素がまだ解析されていない場合は、JavaScriptから要素を参照することはできません(jQueryの有無にかかわらず)。要素が解析されたことを確認する方法を2つのイベントハンドラを割り当てる(またはJSから他の要素の操作を行う)には、次のとおりです。

  1. は、ページのソース内の要素の後にスクリプトブロックを置く - どこでも意志の後しかし、すべての要素の後で、終了のすぐ下にある</body>タグは合理的に標準です。

  2. $(document).ready()ハンドラ(jQueryを使用している場合)またはonloadハンドラに関連コードを入れてください。

(文書準備ハンドラがさ​​え、それが解析されてきた操作要素の前に、そのコードが含まれている時点で作成されますが、それは文書全体の準備ができるまで実行されません。)

関連する問題