0

私はjQueryとjQueryUIを使用しており、jQueryUIボタンがfalseとtrueを切り替える「aria-pressed」プロパティを追加してチェックボックスの状態を読み取ろうとしています。

$('.slideButton').live('click', function() {

alert($(this).attr('aria-pressed'));

});

ただし、このコードは、jQuery UIがaria-pressedを更新する前に、aria-pressedを読み取るようです。だから私は信頼できない値です。UIが更新された後に実行するようにスケジュールできますか、それとも待機させることができますか?

ここに実例があります!

4

2 に答える 2

1

ラベルまたはスパンの背後にある実際のチェックボックスにリスナーを追加できませんか?

$("#days_list li div div div input[type='checkbox']").change(function(){
     alert("Someone just clicked checkbox with id"+$(this).attr("id"));
});

ラベルをクリックすると、チェックボックスの値が変更されるため、これは機能するはずです。


よし、それがどのように機能するかの一般的な考え方と、チェックボックスのステータスを取得する方法を示す実際の例を作成しました。

$("#checkbox_container input").change(function(){
    if($(this).is(":checked")) alert("Checked!");
    else alert("Unchecked!");
});

あなたの場合、チェックボックスはJQueryによって動的に追加されるため、ライブイベントを使用する必要がありますが、基本的に同じことです

$("#checkbox_container input").live("changed"....

これは、主に説明目的で、スクリプトとチェックを追加した例です。

于 2011-09-23T14:44:54.357 に答える
0

alert($(this).attr('aria-pressed'));トグルが完了した後、コールバックを使用してafterを実行できます。

$('.slidebutton').toggle(1000, function(){

    alert($(this).attr('aria-pressed'));
});

使用しているかどうかはわかりませ.toggle()んが、順次実行するには、いずれかの方法でコールバックを使用する必要があります。

于 2011-09-23T14:14:26.310 に答える