我建立了這個彈出式接觸面板。它運行良好,直到我把它放到我的WordPress的網站,然後它拒絕工作。下面是它應該做的事:jQuery Flyout面板不會關閉
我發現,如果我把jQuery(document).ready
一開始,它開始工作,但現在它不會關閉!當你點擊關閉按鈕時,它會重新打開。事實上,我注意到,只要你點擊頁面,任何地方都會導致它重新打開。觀看演示在這裏:
希望這是簡單的解決!任何幫助表示讚賞。謝謝!
我建立了這個彈出式接觸面板。它運行良好,直到我把它放到我的WordPress的網站,然後它拒絕工作。下面是它應該做的事:jQuery Flyout面板不會關閉
我發現,如果我把jQuery(document).ready
一開始,它開始工作,但現在它不會關閉!當你點擊關閉按鈕時,它會重新打開。事實上,我注意到,只要你點擊頁面,任何地方都會導致它重新打開。觀看演示在這裏:
希望這是簡單的解決!任何幫助表示讚賞。謝謝!
您需要:
jQuery(document).ready(function() {
jQuery('#contactFlyout').click(function()
{
jQuery(".togglepanel:visible").hide();
jQuery("#contact_panel").animate({width:'toggle',height:'toggle'},200);
});
// the close button
$('.closeDiv').click(function()
{
jQuery(".togglepanel:visible").animate({width:'toggle',height:'toggle'},200);
});
});
參見:http://jsfiddle.net/DcRHh/2/
或者你可以使用速記由法布里西奧指出。儘管我會堅持使用jQuery over $內部的Wordpress,除非你知道你在做什麼,以避免與其他腳本的衝突。
你們真棒!這兩種方式都可以很好地工作,但是我僅僅因爲他沒有答案而將支票交給了Liam :)感謝你們並感謝Fabricio的鏈接,以瞭解如何正確使用DOM Ready處理程序。 – danzo
通過在3分鐘內給予支票,您也可以代表提出答覆。只是在說'。沒問題。 ':P' –
沒問題@danzo - 隨時 –
這不是你如何使用DOM Ready handler:
jQuery(function ($) { //shorthand for DOM Ready, put your code inside of it
$('#contactFlyout').click(function() {
$(".togglepanel:visible").hide();
$("#contact_panel").animate({
width: 'toggle',
height: 'toggle'
}, 200);
});
$('.closeDiv').click(function() {
$(".togglepanel:visible").animate({
width: 'toggle',
height: 'toggle'
}, 200);
});
});
特殊jQuery(function($){})
語法是WP非常有用,因爲它別名jQuery的回$
的DOM準備處理範圍內。如果您不想一次又一次地輸入jQuery
,這非常有用。
你是對的,我總是在Wordpress中使用jQuery(function($){}),但是我在過去遇到了問題,所以對於那些不知道衝突等問題的人,我建議使用jQuery 。或者有時如果該方法失敗我使用var $ j = jQuery.noConflict();然後使用$ j引用jQuery,它也非常強大。 –
@LiamBailey是的,它將成爲未來用戶的有用數據。但是,假設您使用的插件(如果有的話)使用'(function($){})(jQuery)'正確寫入,那麼DOM準備好的'jQuery(function($){})'語法不應該有jQuery作爲'$'參數傳遞給處理程序範圍內的任何問題。只要你的所有代碼都在裏面,你就可以安全地使用'$'在那裏引用jQuery。 –
另外,jQuery是由WP自動進入'noConflict'嗎? 'var $ j = jQuery;'也應該足夠了。 '=]' –
這不是你如何使用DOM就緒處理程序。您將點擊處理程序綁定到「文檔」。 –