2012-11-07 2 views
0

나는 이벤트에 바인딩 된 링크와 그렇지 않은 링크가 있습니다.클릭을 트리거 할 때 방문 링크

이러한 링크는 선택 상자를 변경하면 클릭 이벤트가 발생합니다.

See this fiddle

어떤 이벤트가 링크를 구속하지있을 경우 링크를 방문 JQuery와에 대한 방법이 있나요?

선택 상자 vlaue 속성 내에서 URL을 참조하고 싶지 않습니다. 앵커 태그에서 url을 참조하고 싶습니다.

(의사 코드) 같은 -

if (link.hasEventHandler('click')){ 
    trigger click 
} else { 
    window.location = link.attr('href') 
} 

편집 -이 내가 여기서 무엇을해야하는지 exactley 않는 플러그인의 - https://github.com/sebastien-p/jquery.hasEventListener

파일 크기가 문제입니다, 그래서 내가 좋아하는 것 그것을 사용하지 마십시오.

내가 그렇게 ('이벤트')

+4

'파일 크기가 문제이므로 사용하지 않으려합니다. '크기는 <~ 2.5kb입니다. jQuery의 크기는 약 20 배입니다. – andlrc

+0

이벤트 리스너를 확인하는이 플러그인을 사용할 수 있습니다. https://github.com/sebastien-p/jquery.hasEventListener – Curt

+0

THanks Null이지만 파일 크기 제한이 정해져 있고 이미 jquery가 포함 된 프로젝트를 상속하고 있습니다. – Finnnn

답변

0

내가 아는 한 JS에서 '가짜 클릭'을 할 수 없습니다. 클릭 이벤트 트리거는 onClick JS 이벤트를 트리거하고 브라우저의 링크를 완전히 클릭하는 것을 시뮬레이트하지 않습니다. 그러나, 당신이해야 할 일은 href를 잡고 JS를 사용하여 해당 페이지로 리디렉션하는 것입니다. 나는 당신의 바이올린을 이렇게하는 몇 줄로 업데이트했습니다.

http://jsfiddle.net/9j8QS/1/

$('a:not(.event-bound)').click(function(event) { 
    window.location.href = $(this).attr('href'); 
}); 

선택기

클래스 event_bound이없는 모든 앵커 태그를 선택합니다.

+0

의 최신 버전을 사용하고 있습니다. – Finnnn

0

당신은 뭔가 트위터 부트 스트랩의 드롭 다운 버튼 (http://twitter.github.com/bootstrap/components.html#buttonDropdowns) 구현할 수를 .DATA 사용할 수있는 최신 jQuery를 사용하고 있습니다. 또한 부트 스트랩을 사용하여 다운로드를 사용자 정의 할 수 있습니다. 드롭 다운 만 선택하면 ~ 40kb로 나옵니다. 모든 CSS이기 때문에 jQuery가 필요하지 않습니다.

0

코드를 보면 콤보 상자에서 선택한 값과 동일한 href 속성을 가진 링크를 선택해야합니다. 예 :

$('#nav').on('change', function(event) { 
     var targetHref = $(this).find("option:selected").val(); 
     $('a[href="'+targetHref+'"]').each(function() { 
      $(this).trigger('click'); 
     }); 
}); 

링크에 대한 클릭 이벤트가 있다고 가정합니다. 그렇지 않은 경우 링크에 동일한 클래스를 지정하고 클래스의 click 이벤트를 작성하여 윈도우 위치를 객체의 href 속성으로 설정하십시오.

관련 문제