2010-07-05 4 views
2

내 페이지 머리글에서 도움말 링크를 클릭하여 켜고 끌 수있는 도움말 레이어를 구현하려고합니다.토글 가능한 도움말 레이어에 대한 Jquery q 도움말 : beforeShow 문제

qTip은 body hover trickery 또는 그 종류의 것을하지 않고 live() 선택자를 대상으로 할 수 없다는 것을 알고 있습니다. 따라서 가장 쉬운 방법은 beforeShow 콜백을 사용하여 바디에 ' 도움이 클래스가 적용 또는 아닙니다. 불행히도, 경고와 함께 테스트하면 beforeShow 함수가 페이지로드시 호출되고 실제로는 '표시 전'이 아닌 것으로 예상됩니다. 누구나 통찰력이나 비슷한 과거 경험이 있습니까?

// outside of document ready function 

function checkHelpLayerStatus() { 
    alert('things that make you go hmmmmm'); 
    if ($('body').hasClass('help')) { 
    } 
    else { 
     $('.tip').qtip({disable: true}); 
    } 
} 

// inside document ready function 

$("#header a:contains(Help)").click(function(e) { 
    $('body').toggleClass('help'); 
    e.preventDefault(); 
}); 

$("body th:contains(Test Tip)").addClass('tip').qtip({ 
    content: 'This is an active list element', 
    beforeShow: checkHelpLayerStatus() 
}); 

감사합니다.

답변

1

Marcel에게 감사드립니다. 덧붙여 말하자면, 게시하기 전에 코드를 변경하는 것이 재미있을 때 실수를했습니다. 그것은 그 문제와 관련이 없습니다.

다른 사람이 qTip API에 문제가있는 경우 여기 해결책이 있습니다. {} 괄호, IMO는 문서에서 대단히 명확하지 않다 :

// Help Layer 
$("#help").click(function(e) { 
    $('body').toggleClass('help'); 
    e.preventDefault(); 
}); 

$("body th:contains(Help Test)").addClass('tip').qtip({ 
    content: { 
     text: 'Help Layer Is On' 
    }, 
    api: { 
     beforeShow: checkHelpLayerStatus 
    } 
}); 

function checkHelpLayerStatus() { 
    if ($('body').hasClass('help')) { 
    } 
    else { 
     return false 
    } 
} 

특히, 콜백은 API에 싸여해야합니다.

다른 사람에게 도움이되기를 바랍니다. 건배.