ページに html があり、頭の中に$("#someelement").click(alert("click"));
. #someelement が存在するかどうかに関係なく、何らかの理由でページをロードするとアラートが発生します。ただし、持っていると実行されません$("#someelement").click(function(){alert("click")});
。何故ですか?
2 に答える
2
alert("foo")
常に foo をすぐに警告しますが、イベント ハンドラーとして渡すことができる関数は返しません。代わりに、関数を jQuery イベント バインディング メソッドに渡す必要があります。
$("#someelement").click(function(){
alert("click");
});
さらに、このコードが にある場合は、<head></head>
でラップする必要があります$(document).ready()
。
$(document).ready(function(){
$("#someelement").click(function(){
alert("click");
});
});
alert
window
など、オブジェクトで定義されたメソッド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 に答える