2010-06-09 97 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