2011-08-18 2 views
1

fancybox로드 :사용하여 대표는이 기본 코드가 제대로 작동

$('#headerLink').fancybox({ 
    'ajax' : {type : "GET" } 
}); 

하지만 대리자를 사용하려면 :

대신 내용의 처음에로드가 나타납니다
$('#header').delegate('#headerLink', 'click', function(){ 
    $.fancybox({ 
     'ajax' : {type : 'GET'} 
    }); 
}); 

"요청한 콘텐츠를로드 할 수 없습니다. 나중에 다시 시도하십시오."

그러면 언로드되고 링크 URL로 리디렉션됩니다.

나는 $(this).fancybox({ ....

나는 또한 '라이브'를 사용하여 시도에 구문을 변경하려고했지만이 .. ..

$('#headerLink').live('click', function(){ 
    $.fancybox({ 
     'ajax' : {type : "GET" } 
}); 

정말 감사합니다 이것에 어떤 도움이 중 하나가 작동하지 않습니다

답변

1

델리게이트에 a 요소를 참조하도록 코드를 변경하십시오.

$('#header').delegate('#headerLink', 'click', function(){ 
    $(this).fancybox({    // $(this) refers to the link 
     'ajax' : {type : 'GET'} 
    }); 
    return false; 
}); 
+0

이 구문을 이미 시도했습니다. 유일한 차이점은 리디렉션 전에 오류 메시지가로드되지 않았기 때문입니다. – grai

+0

@grainne : 링크의 defautt 동작을 취소하기 위해'return false'를 수행하십시오. 내 대답이 업데이트되었습니다. – Mrchief

+0

감사합니다. 거의 작동 중입니다.하지만 문제는 링크가 한 번 클릭 될 때 아무런 일도 일어나지 않고 두 번째 클릭해야한다는 것입니다. 왜 이런 일이 벌어지고 있는지 알 수 있습니까? (나는 이것을 시험 할 때마다 기분이 좋다.) 나는 또한 event.preventDefault()를 시도했다. – grai

관련 문제