なぜこれがうまくいかないのか誰か教えてもらえますか
Drupal.behaviors.toggleGroups = {
attach:function(context, settings) {
for (var i = 1; i < 8; i++) {
$('#edit-group-' + i.toString() + '-toggle').unbind('click').click(function(i) {
$('#category-' + i.toString()).slideToggle();
});
}
}
};
しかし、この醜いものはうまく機能します
Drupal.behaviors.toggleGroups = {
attach:function(context, settings) {
$('#edit-group-1-toggle').unbind('click').click(function() {
$('#category-1').slideToggle();
});
$('#edit-group-2-toggle').unbind('click').click(function() {
$('#category-2').slideToggle();
});
$('#edit-group-3-toggle').unbind('click').click(function() {
$('#category-3').slideToggle();
});
$('#edit-group-4-toggle').unbind('click').click(function() {
$('#category-4').slideToggle();
});
$('#edit-group-5-toggle').unbind('click').click(function() {
$('#category-5').slideToggle();
});
$('#edit-group-6-toggle').unbind('click').click(function() {
$('#category-6').slideToggle();
});
$('#edit-group-7-toggle').unbind('click').click(function() {
$('#category-7').slideToggle();
});
}
};
理想的には、「セレクターが結果を返している間、何かを実行する」のようなことをしたいと思います。問題は、増分された数値が必要であり、クリックするたびに個別のdivが切り替わるということです。私はそれをすべて間違って考えている可能性がありますが、それにもかかわらず、私が持っているものがなぜ有効でないのか理解できません...
そして、あなたがそれをしている間、クリックハンドラーをアンバインド/バインドする必要がないように、jQueryのonce()メソッドに関するアドバイスもありがたいです...
ありがとう!