jQueryをクリックしないトリガーのonclick属性
-
26-09-2019 - |
質問
私はこの問題を得る機能をクリックすべての検索に合わせをチェックします。をクリックイベントのように火がチェックボックスを返し確認もmyFunc()呼び出されます。
でコンビニエンスストアでのお支をクリックすると各チェックボックスの手作業を、誰もが40+チェックボックス-はない"という確信を持つにいます。
かな"と思われたことでしょうを使用していdiv-onclickの代わりに直接入力チェックを入れて下さい。ることがしたいので私がユーザー 大きな 地域をクリックしくチェックを入れて下さい。
したいのですが、私のユーザーの単一のハイパーリンクを選択複数のチェックボックスに一致する特定の属性の値にします。
私は高速な溶液としています。
HTML
<div id="container">
<a href="#" onclick="clickAndCheckAllMatch('search for this text');return false;">some text</a>
<div id="*actual_ID*" onclick="myFunc(a, b, c, d);">
<input type="checkbox" id="book-*actual_ID*" onclick="this.parentNode.click;return false;">
</div>
</div>
JS
function myFunc(a, b, c, d) {
// does stuff
}
function clickAndCheckAllMatch(value) {
$('div[onclick*='+value+']').each(function(idx,e){
$('book-'+this.id).click();
}
編集
私から div へ ラベル その後はビーチに位置している訂正のチェックボックスをチェック。A div またはブロック要素になっても問題あります。
ものonclickから*div*sが見事に描かれていることができた対象のチェックボックスを直接変えるID値を持つもの*actual_ID*.
function clickAndCheckAllMatch(value) {
$('input[onclick*='+value+']').each(function(idx,e){
// e == this
$(this)[0].click();
if ($(this).attr('disabled')) {
//do nothing
} else {
if ($(this).attr('checked')) {
//do nothing
} else {
$(this)[0].click(); // only one checkbox per ID
}
}
});
}
function CheckAll() {
$('#container input[type=checkbox]:not(:checked)').each(function(idx,e){
$(this).click(); // notice the difference ?
});
}
解決
しようとせず、イベントのご利用に変更の値のチェックボックスをチェックしないは二つのことをやろうとしてい
のユーザーの大きな領域をクリックし、
label
要素ではなく、div
.label
要素に対してオープンであるブラウザを継続してご利用いただけで何でもします。には二つの方法が用意されていて:<label><input type='checkbox'>Foo</label>
または
<input type='checkbox' id='chk1'><label for='chk1'>Foo</label>
前者は敵がいるIdを使用するいかにユニーク、そのページで開いていること痛み);後者は何のためのマークアップ場できませんの
input
値が変更される可能性のlabel
ものとします。内容に変更がある場合の状態コードの状態を変化ではなく、直接る"というイベントをトリガします。例えば、変更したい状態のチェックボックスをチェック
chk1
, のうち、い:$('#chk1').attr("checked", true); // or false, of course
ま---するとすべてのチェックボックスコンテナ(有の方の"全て"または"なし"リンク):
$('#container input[type=checkbox]').attr("checked", false); // or true, of course
他のヒント
ただ、私がトリガーしたかったのonclick属性内のjsのコードのようにASP.netでレンダリングされたチェックボックスのイベントハンドラに関連するこのような問題は、解決しました。まず明示的に呼び出すjQueryのクリックイベントでみましたが、しばらくした後、私はこの方法で成功しないことに気づきました。だから、私のために働いたソリューションは、次のとおりです。
someOtherObject.click(eval($('input').attr('onclick')));
乾杯ます。
this.parentNode.click
this.parentNode.click()
する必要があります。
this.parentNode.click
はちょうどメソッドオブジェクトです。それを呼び出すと、DIVのクリックイベントを発生しません。あなたは、そうでない場合は、イベントが発生しません、click
後にカッコを追加する必要があります。
は、これを使用し、先のとがっのコメントをフォローアップするために、
$(document).ready(function(){
$('.theAnchorTagClass').click(function(){
//Code to check all boxes here or do whatever else you need...
});
});
どんな要素のために、それはあなたのためにクリックイベントをキャプチャしようとしているあるようなただ、代替何かます。