2011-10-04 5 views
1

편집 : 좋아, 나는 문제가 내 첫 번째 예체크 박스의 기본 값을 얻는 방법은 무엇입니까?

function CheckboxClick(checkbox, check) { 
    this.checked = check; 

    checkbox.click(function (event) { 
     alert(this.checked); 
    }); 
} 


CheckboxClick($("#checkbox"), $("#checkbox").attr("checked")); 

당신이,이 체크 박스의 this.checked 값 변경을 클릭 할 때마다 발생하지 않았기 때문에 예를 다시했다. 변화를 멈추게하려면 무엇을해야합니까? 분명히 참조로 지정하고 있지만 원시 값을 얻는 방법을 모르겠습니다. 나는 valueOf()를 시도했지만 저에게는 효과가 없었습니다.

+1

기능의 마지막 부분에');'가 없습니다. – Sparky

+0

아, 몰랐어. 그래, 나는 그것을 비행장에 썼다. 내가 겪고있는 문제는 내가하려고하는 것을 혼란스럽게 할 수있는 더 복잡한 기능입니다. –

+1

) 나는 추측하고있다)는 복사 오류였다. 추가 한 후에 나는 prop와 attr 모두를 사용하여 실행했으며 예상대로 작동했습니다 (bool은 변경되지 않았습니다) : http://jsfiddle.net/WPsEx/3/ – scrappedcola

답변

0

방금 ​​this.checked를 var checked로 변경하고 작동합니다.

참고 : jQuery 1.6 이상을 사용하는 경우 동일한 매개 변수로 .attr 메소드를 .prop로 변경해야합니다.

2

원시에서 나는 당신이 html 소스의 값을 의미한다고 생각합니다.

jquery 1.6을 사용하면 prop() 메서드가 새로 추가되었으며 attr()의 의미가 변경되어 html 소스의 특성 값이 반환됩니다. jQuery를 1.6로

http://api.jquery.com/attr/

는 .attr() 메소드가 설정되어 있지 않은 속성 에 대한 정의되지 않은 반환합니다. 또한 .attr()은 일반 개체, 배열, 창 또는 문서에서 사용하지 않아야합니다. DOM 속성을 검색하고 변경하려면 .prop() 메소드를 사용하십시오.

http://api.jquery.com/prop/

속성과 특성의 차이가 특정 상황에서 중요 할 수

. jQuery 1.6 이전에는 때때로 .attr() 메소드가 일부 속성을 검색 할 때 속성 값을 고려하여 일치하지 않는 동작을 일으킬 수있는 이있었습니다. jquery 1.6부터 .prop() 메서드는 명시 적으로 속성 값을 검색하는 방법을 제공하고 .attr()은 특성을 검색합니다.

0

아하 문제는 this이 (가) 예상하지 못한 것입니다. this은 실제로 이벤트를 실행 한 체크 박스를 나타냅니다 (DOM 요소는 jquery가 아닙니다). 그래서 this.checked을 사용하면 jquery statement $("#checkbox").attr("checked")과 같아서 클릭했을 때 왜 바뀌 었는지 알 수 있습니다.

+0

이것은 항상 '정의되지 않음'을 경고하지 않습니까? – seth

+0

오른쪽. grr – scrappedcola

관련 문제