0

我正在使用 jQuery 和 jQuery UI,我试图通过添加 jQuery UI 按钮在 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'));您可以在切换完成后使用回调来执行。

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

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

我不太确定您是否使用.toggle(),但您需要以任何一种方式使用回调来确保顺序执行。

于 2011-09-23T14:14:26.310 回答