0

ページに html があり、頭の中に$("#someelement").click(alert("click"));. #someelement が存在するかどうかに関係なく、何らかの理由でページをロードするとアラートが発生します。ただし、持っていると実行されません$("#someelement").click(function(){alert("click")});。何故ですか?

4

2 に答える 2

2

alert("foo")常に foo をすぐに警告しますが、イベント ハンドラーとして渡すことができる関数は返しません。代わりに、関数を jQuery イベント バインディング メソッドに渡す必要があります。

$("#someelement").click(function(){
    alert("click");
});

さらに、このコードが にある場合は、<head></head>でラップする必要があります$(document).ready()

$(document).ready(function(){
    $("#someelement").click(function(){
        alert("click");
    });
});

alertwindowなど、オブジェクトで定義されたメソッドwindow.alertです。文字列である 1 つのパラメーターが必要であり、window オブジェクトのメンバーである必要があります。("string")の後alertにを配置alert("string")すると、その関数が実行され、ポップアップ ウィンドウに が表示されます"string"。関数にパラメーターとして配置すると同じことがalert("string")起こり、上記のコードが実行されるとポップアップウィンドウが表示されます。

于 2013-01-10T20:13:15.353 に答える
0

これを試して:

$(document).ready(function() {
  $("#someelement").click(function(){alert("click")});
});

ここに働くフィドルがあります

于 2013-01-10T20:15:43.947 に答える