을 클릭 내가 함께 일하고 있어요 바이올린의 : http://jsfiddle.net/Scd9b/지연 링크는 여기에
가 어떻게 클릭 후 HREF 기능을 지연시킬 수는?
예를 들어 사용자가 링크를 클릭하면 메시지가 번 슬라이드 ...과 2 초 후 사용자는 링크 된 페이지로 계속 이동합니다.
죄송합니다. 모든 사람은 링크되지 않은 앵커가 있음을 잊어 버렸습니다.
을 클릭 내가 함께 일하고 있어요 바이올린의 : http://jsfiddle.net/Scd9b/지연 링크는 여기에
가 어떻게 클릭 후 HREF 기능을 지연시킬 수는?
예를 들어 사용자가 링크를 클릭하면 메시지가 번 슬라이드 ...과 2 초 후 사용자는 링크 된 페이지로 계속 이동합니다.
죄송합니다. 모든 사람은 링크되지 않은 앵커가 있음을 잊어 버렸습니다.
. 그래서 우리는 preventDefault
와 링크의 정상적인 기능을 차단 한 후 setTimeout
에, 우리는 올바른에서는 window.location을 설정합니다 :
클릭을 취소하고 setTimeout을 사용하여 위치를 변경하십시오.
$(document).ready(function(){
$("span.answer").hide();
$("a.question").click(function(e){
$(this).toggleClass("active").next().slideToggle("slow");
e.preventDefault();
var loc = this.href;
if(loc){
window.setTimeout(function(){ window.location.href=loc; }, 2000);
}
});
});
을뿐만 아니라 I 링크되지 않은 앵커가 있습니다. 이러한 URL은 정의되지 않은 URL로 리디렉션됩니다. 연결 해제 된 앵커를 리디렉션하지 않고이 스크립트를 작동시키는 방법은 무엇입니까? – henryaaron
loc에 값이 있는지 확인하십시오. 편집 된 코드. 또는 href가 있는지 확인하는 선택기를 사용할 수 있습니다. a.question [href] – epascarello
먼저 링크의 기본 동작을 방지하십시오. 그런 다음 2 초의 제한 시간을 추가하십시오. 그러면 페이지가 링크의 href
속성에있는 url
으로 리디렉션됩니다.
$("a.question").click(function(e){
e.preventDefault();
$(this).toggleClass("active").next().slideToggle("slow");
setTimeout(function(){
location.href = $(this).prop("href");
}, 2000);
});
이것은 jQuery 1.4.2와 맞지 않을까요? – henryaaron
'prop()'만 있습니다. 'attr()'로 바꾸면 괜찮을 것이다. 어쨌든 최신 버전을 사용하는 것이 좋습니다. – Purag
나는 내 사이트가 나를 허용하지 않길 바란다. – henryaaron
$(document).ready(function(){
$("span.answer").hide();
$("a.question").click(function(e){
e.preventDefault();
$(this).toggleClass("active").next().slideToggle("slow");
var Link = $(this).attr("href");
setTimeout(function()
{
window.location.href = Link;
},2000);
});
});
하지만 링크되지 않은 앵커도 있습니다. 이러한 URL은 정의되지 않은 URL로 리디렉션됩니다. 연결 해제 된 앵커를 리디렉션하지 않고이 스크립트를 작동시키는 방법은 무엇입니까? – henryaaron
@ user1090389 -'$ ("a.question") 대신에'$ ("a.question [href]")'선택기를 사용하십시오. – techfoobar
@techfoobar 그러나 여전히 애니메이션은 linked ... – henryaaron
클릭 핸들러에서 e.preventDefault는 어떻습니까? 그런 다음 목적지로 이동하는 setTimeout을 수행 하시겠습니까?
$("a.question").click(function(e){
e.preventDefault();
$(this).toggleClass("active").next().slideToggle("slow");
setTimeout('window.location.href=' + $(this).attr(href), 2000);
});
확인이 바이올린 : http://jsfiddle.net/C87wM/1/
이처럼 토글 수정 : 당신은 설정에서는 window.location하여 페이지로 이동 시뮬레이션 할 수 있습니다
$("a.question[href]").click(function(){
var self = $(this);
self.toggleClass("active").next().slideToggle(2000, function() {
window.location.href = self.attr('href'); // go to href after the slide animation completes
});
return false; // And also make sure you return false from your click handler.
});
+1은'setTimeout()'보다는 애니메이션의 완성 함수를 사용합니다. – jfriend00
@ jfriend00 : 왜 더 나아 졌습니까? – Purag
@Purmou 이렇게하면 사용자가 전체 애니메이션을 볼 수 있습니다. 또한이 방법을 사용하면 링크 지연이 애니메이션 재생 시간보다 더 길어지는 것에 대해 걱정할 필요가 없습니다. 즉 느린 속도 또는 빠른 속도 또는 2,000 등을 자유롭게 사용할 수 있습니다. – techfoobar
이 그것을 수행해야합니다
$("a[href]").click(function() {
var url = this.href;
setTimeout(function() {
location.href = url;
}, 2000);
return false;
});
하지만 링크되지 않은 앵커도 있습니다. 이러한 URL은 정의되지 않은 URL로 리디렉션됩니다. 연결 해제 된 앵커를 리디렉션하지 않고이 스크립트를 작동시키는 방법은 무엇입니까? – henryaaron
링크 해제로 인해 무엇을 의미합니까? – ctcherry
'Hello ' – henryaaron