する代わりに
$("#IsOutdoors").click(function () {
SendData();
});
$("#HasPatio").click(function () {
SendData();
});
複数の .click evnt を実行したい場合、より良い方法はありますか? ありがとう!
する代わりに
$("#IsOutdoors").click(function () {
SendData();
});
$("#HasPatio").click(function () {
SendData();
});
複数の .click evnt を実行したい場合、より良い方法はありますか? ありがとう!
すべてのセレクターを 1 つの文字列で使用し、コンマで区切ります。
$("#IsOutdoors, #HasPatio").click(function () {
SendData();
});
SendData
より簡潔なバージョンについては、関数自体をclick
次のように渡すことができます。
$("#IsOutdoors, #HasPatio").click( SendData );
ただし、これによりthis
内の値が変更されることに注意してSendData
ください。
$("#IsOutdoors,#HasPatio").click(SendData);
かなりの数の方法があります:
$("#IsOutdoors, #HasPatio").click(SendData);
$.add()
。getElementById()
個々の選択は、フルまたはシズルの代わりに内部的にショートカットを使用するquerySelectorAll()
ため、これがより効率的である可能性があります。$("#IsOutdoors").add("#HasPatio").click(SendData);
$(".someClass").click(SendData);
それはあなたがより良いとはどういう意味かによります。コードを減らしても同じ結果が必要ですか?あなたは次のようなことをすることができます
$("#IsOutdoors, #HasPatio").click(SendData);
クリックハンドラーの数を減らしたい場合、たとえば、すべて同じクリックハンドラーを持つ複数のDOM要素がある場合は、代わりにイベントハンドラーを親要素に配置できます。次に、このイベントを委任する必要のある要素のすべてのIDを一覧表示するか、のようなすべての共通クラスをそれらに与えることができますclickable
。HTMLが次のようになっているとしましょう。
<div id='someParent'>
<div id='IsOutdoors' class='clickable'></div>
<div id='HasPatio' class='clickable'></div>
</div>
クリックハンドラーを次のように簡略化できます
$("#someParent").on('click', '.clickable", SendData);
または、私が提案したようなクラスを追加したくない場合
$("#someParent").on('click', '#IsOutdoors #HasPatio", SendData);