2014-01-23 3 views
0

이 같은 바인딩이있는 경우 :이 바인드에서 클릭 이벤트를 트리거하는 방법은 무엇입니까?

$('#jsddm > #vehicle').bind('click', openVehicleMenu); //vehicle menu click event 

을 나는이 작업을 수행 할 수 :

$('#vehicle').trigger('click'); 

어떤 생각이 어떻게 그렇게?

이 같은 광고 작동
+2

쓴대로. –

+0

openVehicleMenu()가 실행되지 않습니다. – gjw80

+0

@DanLee가 말한 것처럼 맞습니다. 당신은 틀린 뭔가가 있어야합니다. – Liam

답변

0

참조하면 li

<ul id="jsddm"> 
    <li><a id="vehicle" href="#">Vehicle</a></li> 
</ul> 

을 수행해야합니다 내부 a 요소가있는 경우, 비록 문제가있을 수 있습니다 무엇

<ul id="jsddm"> 
    <li id="vehicle">Vehicle</li> 
</ul> 
function openVehicleMenu() { 
    console.log('openVehicleMenu'); 
} 

$('#jsddm > #vehicle').bind('click', openVehicleMenu); 

JSFiddle

선택기를 다음과 같이 수정하십시오. #jsddm > #vehicle

JSFiddle

$('#jsddm #vehicle').bind('click', openVehicleMenu); 

vehicle 요소는 jsddm의 직접 자식이어야합니다. vehiclejsddm의 자손 인 경우이 작업이 수행되지 않습니다. > 하위 선택자를 생략하거나보다 구체적으로 #jsddm li #vehicle과 같이 지정해야합니다.

선택기가 고유해야하는 id을 주소 지정하므로 선택기에 대해 선택할 수 있습니다. 이렇게하면 이런 종류의 문제가 전혀 발생하지 않습니다.

관련 문제