セレクターに問題があります。
実際、私はウィジェットを書いています。
クラスを変更するには、2 つのクリック イベントが必要です。問題は、最初のイベントをクリックすると、クラスが変更されることです。しかし、2 回目のクリックでは、クラス (セレクター) が間違っていても、常に同じクリック イベントに移動します。
$(".ui-multiselect-costum-button",$(this)).click(function(){
console.log($(this).parent().html());
console.log($(this).attr("class"));
$(this).removeClass("ui-multiselect-costum-button").addClass("ui-multiselect-costum-button-active");
console.log($(this).attr("class"));
console.log($(this).parent().html());
});
$(".ui-multiselect-costum-button-active",$(this)).click(function(){
console.log($(this).attr("class"));
$(this).removeClass("ui-multiselect-costum-button-active").addClass("ui-multiselect-costum-button");
console.log($(this).attr("class"));
});
コンソールはこれを示します:
<input type="checkbox" value="2" style="display: none;"><span class="ui-multiselect-costum-button"></span>
ui-multiselect-costum-button
ui-multiselect-costum-button-active
<input type="checkbox" value="2" style="display: none;"><span class="ui-multiselect-costum-button-active"></span>
<input type="checkbox" value="2" style="display: none;"><span class="ui-multiselect-costum-button-active"></span>
ui-multiselect-costum-button-active
ui-multiselect-costum-button-active
<input type="checkbox" value="2" style="display: none;"><span class="ui-multiselect-costum-button-active"></span>
では、なぜクリック イベントは常に ui-multiselect-costum-button-active ではなく ui-multiselect-costum-button を使用するのでしょうか?