0

jQueryのイベントバインディングを理解しようとしています。私は次のように簡単なコードを書きました:

<html>

<script language="javascript" src="jquery.js"></script>

<body>
<form>
<input type="button" name="bu1" value="click me">
</form>
</body>

<script language="javascript">
jQuery("input[type='button']").bind('click',alert('Hello'));
</script>


</html>

ページを実行すると、ボタンをクリックしたときではなく、ロード時にアラートが発生します。誰かが私がどこで間違っているのかを理解するのを手伝ってくれますか?

4

4 に答える 4

3
jQuery("input[type='button']").bind('click', function () {
    alert('Hello');
});

関数を呼び出すのではなく、渡す必要があります。したがって、上記のコードでは、alertを呼び出す無名関数を追加しました。

于 2012-05-30T10:48:27.303 に答える
0
<script language="javascript">
 jQuery(function(){
      jQuery("input[type='button']").bind('click',function(){
      alert('Hello')
   })
 })

</script>

内部で行う

Jquery(function(){

})

と編集

 jQuery("input[type='button']").bind('click',function(){
          alert('Hello')
       })
于 2012-05-30T10:50:48.673 に答える
0

2番目の引数として関数を渡す必要があります

jQuery("input[type='button']").bind('click', function() {
    alert('Hello')
});

それ以外の場合、javascriptが実行alert('Hello')されて関数の2番目のパラメーターの値がbind取得されるため、ウィンドウにアラートが表示されます。

于 2012-05-30T10:48:47.700 に答える
0

ええ、それを関数にまとめます。また、event.preventDefault()も追加します。

jQuery("input[type='button']").bind('click', function(e) { 
  e.preventDefault();        
  alert('Hello');
});

ロブ

于 2012-05-30T10:53:33.773 に答える