2012-03-11 2 views
0

확인 나는 드롭 다운 메뉴를 가지고, 나는 jquery에 대한 select 이벤트가 있습니까?

$('select.small').change ... 

그것은 몇 가지 옵션을 가지고

를 사용하지만 문제, 내가 첫 번째 옵션을 선택하면 - 아무 반응이 없습니다 - 이미 선택되어 있기 때문이다. 그것이 일어날 수있는 방법이 있습니까?

지금까지 기본으로 선택되어 아무 것도하지 않은 추가 빈 옵션을 사용했지만 지금은이 기본 옵션을 비우기 위해 사용해야하므로 추가 기본값을 추가 할 수 없습니다. 빈 옵션.

제발, 조언.

편집 : LMAO, 나는 결국이 일을 :

$('select.small').change(function(){ 
    alert('you selected some option'); 
}); 

$('select.small').bind('focus',function(){ 
    $('select.small').click(function(){ 
     $('select.small').click(function(){ 
     if((this).val()=='') $('select.small').trigger('change'); 
     $('select.small').unbind('click'); 
     }); 
    }); 
}); 

그러나 때로는 도청 것을 = (

난 그냥 아무도 해결책을 알고 믿을 수 없어 당신이 의미하는 경우

+1

첫 번째 페이지를 선택된 상태로두고 페이지가로드 될 때 변경 콜백을 시작하는 것은 어떻습니까? 그런 다음 첫 번째 옵션을 다시 선택하면 시작할 필요가 없습니다. –

+0

첫 번째 옵션이 이미 선택된 경우 사용자가 해당 옵션을 선택하려고 할 때까지 기다리지 않고 페이지를로드 할 때 해당 옵션에 대해 수행해야 할 작업을 수행 할 수 없습니까? 사용자가 단순히 기본 설정을보고 혼자 있기 때문에 더 적절하지 않습니까? –

+0

기술적으로 드롭 다운 상자를 열고 첫 번째 항목을 선택하면 실제로 아무것도 선택하지 않습니다. 당신 (프로그래머)은 이미 기본 선택 옵션이 무엇인지 알고 있으므로 누군가가 그것을 선택할 때 프롬프트를 표시하지 않아도됩니다. 마찬가지로 사람들은 귀하의 사이트를 방문하지 않을 것입니다. 이미 선택하기를 원하는 옵션이있는 드롭 다운 상자를보고 아직 선택 상자를 열고 이미있는 옵션을 다시 선택하십시오. 다른 옵션을보고 싶어도 드롭 다운을 열어도 좋지만 원하는 항목이 이미 선택되어 있으면 클릭하면됩니다. –

답변

0

나는 그것을 만들었다. 그리고 나는 자랑스럽게 스스로에게 대답 할 것입니다.

$('select.small').bind('focus click',function(){ 
    $(this).children().removeAttr('selected'); 
}); 
0

. 페이지가로드 된 후 변경 콜백을 설정 한 직후에 변경 메소드를 호출하면 사용자가 바로 선택했듯이 효과적으로 작동합니다.

+0

페이지를로드하는 데 아무런 영향이 없습니다. 방아쇠를 당길 필요가있는 모든 것이 이미 발동되었습니다. 그건 내가 필요로하는 것이 아니다. – Anonymous

관련 문제