2013-07-24 5 views
1

내가 가지고있는 것은 jquery를 통해 채워지는 HTML 선택 목록입니다. 현재 옵션을 변경하면지도가 POI에 다시 초점을 맞출 수 있도록 변경 이벤트가 발생합니다. 나는 그것이 동일한 옵션을 클릭 할 때지도가 변경 이벤트로 처리하도록 동작하도록 만들고있다. 옵션은 클릭 이벤트를 지원하지 않으며 선택 목록에 클릭 이벤트를 추가하는 것은 두 번의 클릭 이벤트가있는 것을보고 작동하지 않습니다.선택 목록에서 동일한 옵션 선택

요약하면 동일한 옵션을 클릭하면 .change()가 트리거되지 않습니다.

옵션 태그 또는 내가 알지 못하는 다른 이벤트를 수정하는 방법이 있습니까?

감사합니다.

+1

이 유 바이올린을 만들 수 있습니까 ?? –

+0

일부 코드보기! 추신. 당신은 선택 목록에'.change()'이벤트를 사용할 수 있습니다. – Novocaine

+0

예, .change()를 사용할 수 있지만, 동일한 옵션을 클릭하면 .change()가 트리거되지 않습니다. – Nixon

답변

2

시도를 접하기 위해, 그들은 단지 선택한 옵션에 다시 변경할 수 있습니다 이전 옵션 변경 사항이없는 경우에만 클릭 이벤트를 변경하십시오. 이렇게하기 위해 우리는 data-change처럼 몇 가지 플래그를 설정할 수 있습니다.

정답 :

난 그냥 아이디어로보고 정답으로 이것을 받아 들일 수 있도록이 대답을 편집 할 수 있습니다 오른쪽하지만 구현은 아니다. 올바른 방법은 .change 이벤트를 가져 오는 것입니다. 올바른 코드로 연결 : http://jsfiddle.net/qcJwm/1/.

코드 :

$('select').click(function() { 
    if ($(this).data('click')) { 
     doStuff(); 
     $(this).data('click', false); 
    } else { 
     $(this).data('click', true); 
    } 
}); 

var doStuff = function() { 
    alert('stuff'); 
} 
+0

이것은 닫았지만 2 번의 클릭 후 , 설정 방법에 따라 서로 클릭을 건너 뜁니다. 생각은 옳습니다. – Nixon

0

값없이 첫 번째 옵션을 추가 할 수 있습니다. 변경시 첫 번째 옵션의 값을 선택한 옵션의 값으로 변경하고 'goto-code'를 수행하십시오.

다시 변경할 수 있기를 원하면 $('item')[0].selectedIndex=0으로 선택한 첫 번째 옵션을 만들어야합니다. 동일한 값을 가지기 때문에 사용자가이를 알 수 없습니다.

$('select').on({ 
    change: function(e) { 
     alert('change') 
     $(this).data('change', true); 
    }, 
    click: function() { 
     if (!$(this).data('change')) { 
      $(this).trigger('change'); 
     } 
     $(this).data('change', false); 
    } 
}); 

http://jsfiddle.net/WFmpW/1/

그래서 아이디어가 트리거입니다 :이 때문에, 사용자는 다음과 같이 뭔가를 다시