ページが最初に読み込まれたときに関数の一部を実行したいが、change
イベントの大部分は、その後にターゲットとのやりとりが行われたときにのみ実行する必要があります。docreadyのjQueryイベントを変更する
問題は、2つのイベントが無関係ではないということです。ページの読み込み時に特定のdivを表示したい場合、divを表示/非表示するクリックアクションが必要です。私はこれらの2つの部分を別々に走らせることができますが、それらを組み合わせることはできませんでした。
私の質問は、この分離を達成する最良の方法は何ですか? jQueryに「このパーツを1回だけ実行する」または「このパーツをページ読み込み、この部分をonclickで実行する」というメソッドがありますか?
例として、私は(それがすぐに実行されるように.change();
を使用しています)Docreadyにロードし、このコードを持っている:
$(function() {
$('.trigger :checkbox').change(function() {
$(this).parent().nextAll('ul.hidden').toggle(this.checked);
}).change();
});
をしかし、私は、誰かが私の.trigger
の1をクリックしたときにこのコードを実行したいalseクラス:
$('.trigger :checkbox').change(function() {
var $target = $(this).parent().nextAll('.hidden'); // go up a level and then look for the next list with the hidden class
$(this).parent().toggleClass('open'); // the class of the label needs to change, so find the parent of the checkbox
$target.fadeToggle();
if($(this).is(':checked')) {
$target.find('.hidden').css('display', 'none'); // hide all submenus
} else {
$target.find(':checkbox').removeAttr('checked'); // untick all checkboxes in sub-menu if unchecking
}
});
現在のところ、クリックイベントは非常に混乱します。
私は私はあなたが望むものを理解していません。ページが読み込まれたときにいくつかのイベントを実行したいのですか、要素がクリックされたときに別のイベントを実行しますか?このようにhttp://jsfiddle.net/yg7f9/? – alexn
種類:私の問題は、私の変更機能をこの同じものに適用する必要があるため、私は 'this'を利用できるということです。それは理にかなっていますか? – CherryFlavourPez