2010-06-09 232 views
1

我在圖形上使用切換來滑出聯繫人表單。問題是,聯繫表單可以在低分辨率下覆蓋圖形元素。我認爲一個解決方案是在表單中加入「關閉這個」,這會使用相同的切換效果。當我添加關閉這個元素到代碼中,而不是與原始圖形元素協同工作時,它會重新啓動鏈,並將聯繫表格更進一步滑出。jquery切換兩個元素

網站是在這裏: http://www.tritonloyaltysupport.com/status

代碼切換這裏:

$(this).html(div_form); 
//show/hide function 

$('div.contactable').toggle( 
    function() { 
     $('#overlay').css({display: 'block'}); 
     $('#contactForm').animate({"marginRight": "-=0px"}, "fast"); 
     $('#contactForm').animate({"marginRight": "+=390px"}, "slow"); 
    }, 
    function() { 
     $('#contactForm').animate({"marginRight": "-=390px"}, "slow"); 
     $('#overlay').css({display: 'none'}); 
    } 
); 
+0

請清理你的代碼。 – 2010-06-09 15:47:33

+1

歡迎使用stackoverflow。代碼格式很簡單,因爲它只需要4個空格縮進。我爲你照顧它。 @約翰 - 來吧,夥計。傑西是新的。保存25個問題後仍然無法解決的問題。 – user113716 2010-06-09 16:05:52

+0

謝謝帕特里克,我很感激。有些人只是喜歡貶低而不是提供實際問題的答案。 – Jesse 2010-06-09 16:17:10

回答

0

你可以嘗試設置你的兩個撥動操作爲您的$函數外()切換();然後將隱藏功能綁定到新面板。

function show() { 
     $('#overlay').css({display: 'block'}); 
     $('#contactForm').animate({"marginRight": "-=0px"}, "fast"); 
     $('#contactForm').animate({"marginRight": "+=390px"}, "slow"); 
} 

function hide() { 
     $('#contactForm').animate({"marginRight": "-=390px"}, "slow"); 
     $('#overlay').css({display: 'none'}); 
} 

$('div.contactable').toggle(show, hide); 

$('button .close', '#contactForm').click(hide); 

很明顯,你將有你改變最後一行定位您的關閉按鈕,但應該讓你開始。

+0

您正在將函數傳遞給'toggle()'和'click()',並且您的上下文參數應該用引號''#contactForm''引用。 – user113716 2010-06-09 16:27:28

+0

你當然是對的。這是在思考其他事情時急速輸入的結果。更正了,謝謝。 – Rookwood 2010-06-09 16:47:19

+0

不客氣,但'click()'仍然需要更正。此外,您不一定需要像在其他功能中那樣調用它們。所有你需要做的就是像這樣賦值:'$('div.contactable')。toggle(show,hide);'這會傳遞函數的引用。您之前的方式是,在函數引用之後,由於執行運算符爲'()',因此調用了函數。 – user113716 2010-06-09 16:51:05

0

我最終重新使用了前一段代碼作爲幻燈片面板,並重新使用了它。代碼如下感興趣的人:

$(this).html(div_form); 
     $("div.contactable").click(function() { 
      if ($("#openCloseIdentifier").is(":hidden")) { 
       $("#contactForm").animate({ 
        marginRight: "0px" 
        }, 500); 
       $("#openCloseIdentifier").show(); 
      } else { 
       $("#contactForm").animate({ 
        marginRight: "-390px" 
        }, 500); 
       $("#openCloseIdentifier").hide(); 
      } 
     }); 
+0

您應該將您的解決方案標記爲正確的答案,因此此問題不再顯示爲優秀。 – 2011-09-02 22:16:00