2011-01-18 6 views
1

jQuery로 개발할 때 종종 href = '#'id = 'myTrigger'를 이벤트의 트리거로 사용합니다. 실제로는 하이퍼 링크로 사용하지 않으려면 false를 반환합니다. . 내가 전에 코드를 게시 할 때마다, 나는 하이퍼 링크를 트리거로 사용하여 경험이 많은 사람들의 이야기를 들었다. 입력 유형 = "버튼"을 사용해야합니까, 아니면 모든 요소에 ID를 부여하고 트리거로 사용합니까?semantically correct jQuery trigger

jQuery 트리거의 모범 사례는 무엇입니까?

답변

1

이것은 당신이하고있는 일과 요소의 기본 동작에 달려 있습니다.

예를 들어 팝업에서 페이지를 열어 링크의 기본 동작을 바꾸는 경우 링크를 사용하는 것이 좋습니다. 검색 엔진은 여전히 ​​링크를 볼 수 있으며 클라이언트 스크립트를 사용하지 않는 소수의 사용자는 정상적으로 성능이 저하됩니다.

다른 한편으로는 링크를 사용할 네비게이션과 완전히 다른 이벤트에 이벤트를 사용하는 경우에는 다른 요소를 사용해야합니다.

링크의 기본 동작을 중지하려면 preventDefault 메서드를 사용할 수 있습니다. 예 :

$('a#info').click(function(e){ 
    alert('info'); 
    e.preventDefault(); 
}); 

이벤트를 수신하려는 요소를 대상으로 지정하려면 id를 사용할 필요가 없습니다. id는 요소를 대상으로하는 효율적인 방법이지만 요소를 대상으로하는 모든 방법이 유효합니다. 예 :

<div class="button">Eat me</div> 

$('.button').click(function(){ alert('Eaten.'); }); 
0

상황에 맞는 것을 사용해야합니다. 하이퍼 링크를 추가하지 마십시오. 이미있는 요소에 클릭 이벤트를 추가하십시오. <p> 인 경우 <img> 인 경우 클릭 이벤트를 <p>에 추가 한 다음 해당 이벤트를 추가하십시오.

$('#myTrigger').click(function() { /* do stuff */ }) 

... 당신은 그때 문제를 했어 HREF 발사를 중지 return false 필요하지 않습니다 :

<div id=myTrigger'>Click Me</div> 

과 :

1

나는 보통 무언가 같이 할 과거에; 자바 스크립트가 실행되기 전에 클릭하면 어쨌든 실행됩니다. 이 방법은 또한 나에게 일종의 '옳은'것 같지만, 그것을 할 수있는 다른 방법이 있습니다.

물론 클릭할만한 물건을 사용할 수 있습니다. div, span, img, button 등 - 이제는 더 이상 제출하지 않아도됩니다. 항상 위와 같이 사용되는 버튼입니다. 그 때 가장 좋은 것을 사용하십시오 ...