2011-10-17 1 views
0
내가 여기에 중복을 생성하고 있지 않다 희망

없이 사용자를위한 자바 스크립트 링크를 사용하는,하지만 난 정말/찾기 위해 아직 유용한 내용을 찾지 못 하셨나요 모르겠어요.어떻게 제대로 JS

jquery click() 핸들러를 트리거하는 내 페이지에 여러 링크 (<a>)가있어 재로드없이 div에 새 페이지를로드합니다. 이러한 링크를 비 자바 스크립트 사용자가 사용할 수 있도록하려면 동일한 페이지에 링크하고 싶습니다. (그 이유는 div/span/button을 사용하지 않고 s를 사용하기 때문입니다). 이것에 대한 예는 스크립트가 다시로드되므로 jaavascript를 덮어 쓸 수 있다는 것입니다.

그래서 자바 스크립트와 링크로 링크를 사용하여 브라우저를 방지 어떻게? 또는 비 자바 스크립트 사용자가 사이트를 올바르게 사용할 수 있도록 허용하는 올바른 해결책은 무엇입니까?

제가 직접 해결할 수있는 유일한 해결책은 버튼을 사용하는 것입니다.하지만 링크를 통해서만 지정되는 GET을 통해 1 개의 변수를 제출하기는하지만 양식을 사용해야하므로 상당히 부피가 커졌습니다. 당신은 당신이 jQuery를 사용한다고 가정하기 때문에 도움 :) 주셔서 감사합니다

답변

1

당신이하고있는 일에 대해 다른 사람들이 대답 했으므로 false을 돌려 주지만 jQuery 이벤트 핸들러에서는 return false;을 과도하게 사용하지 않도록 조심하십시오.

당신은 아마 더 나은에만 클릭 동작을 중지 preventDefault()를 호출하여 제공 될 것입니다. 링크가 뒤따라지는 못하게되지만 부착 될 수있는 다른 핸들러는 중지하지 않습니다. 자세한 설명은 jQuery events: stop misusing return false을 참조하십시오.

예 :

$("a").click(function(event) { 
    // your custom code 
    event.preventDefault(); 
}); 
+0

이미 나의 질문은 거짓으로 덮여 있었다. 하지만 당신의 대답은 훨씬 더 유용합니다! preventDefault()는 내가 정말로 원한다! 나는 나중에 머리를 긁적이는 것을 막을 수있었습니다. 정말 고마워요! – Anonymous

1

, 이벤트 핸들러에 false을 반환합니다.

$("a").click(function() { 
    // ... 
    return false; 
}); 
+0

위대한, 정확히 내가 필요한 것! 고마워요. – Anonymous

2

하면 클릭 이벤트 처리기에 return false, 그것은 ... 새 페이지 링크를 따라하는 것입니다 귀하의 경우 기본 동작으로 끝까지하지 않을 경우

$('a').click(function(e) { 
    // process your event... 
    return false; 
}); 

자바 스크립트가 비활성화 된 경우 예상대로 다음, 그것은 새로운 href<a> 태그를 따릅니다.

+0

그 덕분에, 정확히 내가 필요로했던 것!icktoofay는 더 빨랐다. 그래서 나는 단지 너를 업 그레 이드 할 수있다;) – Anonymous

1

jQuery를 사용하면이 문제를 해결하기 위해 여러 가지 방법을 제공합니다.

$('.some-link').click(function(event) { 
    //just prevent browsers default behavior 
    event.preventDefault(); 
    //stop calling all other handlers, including live 
    event.stopPropagation(); 
    //stop calling all handlers listening to the same dom node 
    event.stopImmediatePropagation() 

    //do all of the above 
    return false; 
)} 

희망이 있습니다.

0
$("a").click(function() { 
    // ... 
    return false; 
}); 

이 페이지를 변경하는 경우 (즉, 클릭)을 방지 할 수 있지만, 그것은 또한 방법 체인에서 당신을 방지 할 수 있습니다. 메서드 연결은 다음과 같습니다.

$("a").click(function(){}).css('color', 'red'); 

클릭은 취소되지만 CSS는 실행되지 않습니다. .preventDefault()를 사용

꽤 표준이 문제가 발생하지 않습니다.

$("a").click(function(event) { 
    // ... 
    event.preventDefault(); 
});