2012-03-05 2 views
0

jQuery関数を使用してボタンにアクションをバインドしています(クリック)。何も起こりません。 `あなたがするいずれかの必要なボタンが最初のページのソースに存在すると仮定すると、ボタンがクリックされたときにアクションをバインドするjQueryが機能しない

<script > 
    $('#admin').live('pageinit',function(event){ 
    $('#AddButton').click(function(){ 
      alert("Clicked") 
     });​ 
    }); 
</script> 

答えて

2

  1. がボタンの後に、ソースのどこかで、あなたの<script>ブロックを置き、ここで私が使用しているコードだ!来ます、または
  2. に上記のコードをラップしますハンドラ。

そうしないと、ボタンが見つからないため、JSが実行されているときにボタンのhtmlがブラウザによって解析されません。

ボタンが最初に存在しない場合、つまり、あなたは、あなたが使用することができ、他のいくつかのイベントに応答して動的に追加されます。

あなたは既にのためにやっていることに似て
$('#AddButton').live('click', function(){ ... 

... admin要素があり、ハンドラは自動的にボタンに適用されます。

.live()はjQueryバージョン1.7以降で廃止されました。したがって、1.7を使用する場合は.on() methodを使用し、古いjQueryではさらに.delegate() methodを使用することをお勧めします。 API doco for .live()は変換方法を説明しています。

+0

ありがとうnnnnn、それは働いた:) –

+0

ようこそ。あなたがボタンを動的に追加する場合、他のオプションは、ボタンを追加するコードの部分から '.click()'バインディングを実行することです。 – nnnnnn

関連する問題