2011-09-23 4 views
0

jQuery와 jQuery UI를 사용하고 있으며 jQuery UI Button이 false와 true 사이를 전환하는 "aria-pressed"속성을 추가하여 확인란 상태를 읽으려고합니다.UI가 업데이트 될 때까지 .live()를 지연시키는 방법은 무엇입니까?

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

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

}); 

이 코드는 그러나 아리아 프레스 jQuery를 UI 전에이 아리아-누르면 업데이트했습니다 읽을 것 같다. 그래서 나는 신뢰할 수없는 가치관입니다. UI가 업데이트 된 후에 실행하도록 예약 할 수 있습니까? 아니면 기다릴 수 있습니까?

Live example here!

+0

왜 '아리아 누르기'를 통해 확인란 상태를 읽으려고하십니까? –

+0

체크 상자가있는 상태를 가져 오려고합니다. 다른 방법은 모른다 : – Coral

+0

[jQuery : checked selector] (http://api.jquery.com/checked-selector)를보고 싶을 수도 있습니다. /). –

답변

1

레이블 또는 범위 뒤의 실제 체크 박스에 수신기를 추가 할 수 없습니까?

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

레이블을 클릭하면 확인란의 값이 변경되므로 제대로 작동합니다.


좋아, 나는 그것이 작동하는 방법의 일반적인 생각을 보여줍니다 당신을위한 live example 구성했습니다, 어떻게 당신이 체크 박스의 상태를 검색 할 수 있습니다. 체크 박스 JQuery와에 의해 동적으로 추가되기 때문에 귀하의 경우에는

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

, 당신은 라이브 이벤트를 사용해야하지만, 몇 가지 추가 스크립트와 기본적으로 같은 일

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

Here's an example이며 주로 확인 시범 목적으로.

+0

AJAX가로드 된 컨텐츠로 인해 보이지는 않지만 변경 이벤트로 라이브를 사용할 수 있습니까? – Coral

+0

라이브 ('changed'...)와 작동하지만 어떻게 할 수 있습니까? – Coral

+0

어떤 상태인지를 확인하기 위해'$ (this) .attr ("checked")'를 사용하면 'undefined'또는 'checked'를 반환 할 수 있습니다. – ShadowScripter

0

당신은 전환이 완료된 후 alert($(this).attr('aria-pressed'));을 실행하기 위해 콜백을 사용할 수 있습니다. 당신의 .toggle() 여부를 사용하지만 순차적 인 실행을 보장하기 위해 콜백에게 어느 쪽이든을 사용할 필요가있는 경우

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

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

나는 너무 확실하지 않다.

+0

AJAX 호출을 통해 모든 버튼을 동적으로 추가하므로 작동하지 않는 것 같습니다. 그래서 live()를 처음 사용했습니다 (적어도 live()를 사용해야합니다). – Coral

관련 문제