2014-07-09 3 views
0

을 클릭하면 선택에 이벤트를 클릭하여 호출 할 수 없습니다 나는 다음과 같은 HTML 코드가 있습니다jQuery를 : 다른 div 요소

<select id="manufacturer"> 
      <option value="0">Select a manufacturer</option> 
      <option value="Brother">Brother</option> 
</select> 
<div class="select-widget"></div> 

을 그리고 내가 .select-widget 사업부를 누르면 선택을위한 방법을 클릭 호출하려고 노력하지만, 아무 일도 발생하지 않습니다!

$('select').next().click(function(){ 
          $(this).prev().click(); 
}); 

P. trigger ('click')는 같은 방식으로 작동하지만 드롭 다운 이벤트를 만들지 않습니다!

그래서 .select-widget div를 클릭하면 select의 드롭 다운 이벤트를 트리거 할 수 있습니까? Plz가이 문제를 해결할 수 있도록 도와주세요!

+0

드롭 다운 이벤트가 발생했습니다. –

+0

드롭 다운 메뉴에서 드롭 다운 선택을 변경 하시겠습니까? –

+0

선택 클릭 이벤트는 사용자가 원하는 것을 UI가 선택하지 않습니다. – QBM5

답변

1

어쩌면 내가 누락되었지만 문제가 해결 될 수 있습니까? http://jsfiddle.net/p4s6z/2/

HTML :

<select id="manufacturer"> 
    <option value="0">Select a manufacturer</option> 
    <option value="Brother">Brother</option> 
</select> 
<input type='submit' class='select-widget' onclick='alert("ok")'></input> 

자바 스크립트 : on를 사용하도록 업데이트

$('select').on('change',function(){ 
    $('.select-widget').click(); 
}); 

편집, 감사 jme11

+3

1.7 이후로 더 이상 사용되지 않으며 삭제 된 상태로 제안하지 마시기 바랍니다. on() 메소드는 이벤트를 바인드하는 적절한 방법입니다. – jme11

+0

아니요, 반대로, select를 클릭하면 dropdown 이벤트를 호출해야합니다. select-widget! – user3818468

+0

지금 +1 감사합니다 .--) – jme11

0

@ 난 당신이 찾고있는 정확하게 기능 확실하지 않다 for하지만 jQuery에서 .click()을 사용하여 동일한 반응을 얻을 수 없다. 페이지에서 킥. .click() jQuery 함수는 클릭 이벤트에서 트리거하는 의미에서 요소를 '클릭'만합니다.

+0

좋아요, 어떻게하면 선택 항목의 드롭 다운 이벤트를 트리거 할 수 있습니다. .select-widget div? – user3818468

0

트리거 방법을 사용해야합니다. 이것을 시도하십시오 :

$('.select-widget').on('click', function(){ 
    $('#manufacturer').trigger('click'); 
}); 

$('#manufacturer').on('click', function(){ 
    $(this).val('Brother'); 
}); 

jQuery의 click() 메소드는 onclick의 단축형 인 이벤트 핸들러입니다. 트리거 메소드는 선택된 요소에서 이벤트를 트리거합니다.

0

코드에서 이벤트를 트리거해야하는 경우 리팩터링해야 할 수 있습니다.

$(document).ready(function(){ 

    $('select').on('change',function(){ 
     $('.select-widget').submit(); 
    }); 

    $('.select-widget').on('submit',function(){ 
     alert('submitted!'); 
    }); 

})