2010-06-01 61 views
1

不知道这是可能的,但你可以加载和卸载到jQuery的切换div?Jquery加载到切换开关

有点像这样?

$("#IDOFCLICK").live('click',function(){ 
$(this).toggleClass("active").('#IDOFDIVTOLOAD').load('PAAGETOLOAD').slideToggle("slow"); 
}); 

如果我能猜到上面是不正确的,但是,你会怎么也卸载的“反向”切换?

回答

2

这是行不通的。您正在使用的toggle只是切换课程。有一个toggle事件可以使用,但据我所知live()不支持。

当你说unload我假设你想清空#IDOFDIVTOLOAD的内容。如果这是正确的,你可以试试这个:

$("#IDOFCLICK").live('click',function(){ 
    $(this).toggleClass("active"); 
    var $loadElement = $('#IDOFDIVTOLOAD'); 
    if($loadElement.is(':empty')) { 
     $loadElement.load('PAAGETOLOAD').slideToggle("slow"); 
    } else { 
     $loadElement.empty().slideToggle("slow"); 
    } 
}); 

jQuery的文档:

+0

感谢帕特里克会放弃它,我知道我的是完全错误的,但我甚至不确定是否可以完成。 – user351657 2010-06-01 11:14:52

+0

听起来不错。请注意,如果在加载之前'#IDOFDIVTOLOAD'内有其他内容,则'.is()'不会正确。如果是这样的话,你需要在'if()'中改变测试。 – user113716 2010-06-01 11:19:00

0

我碰到这个跑啊w ^当我尝试它时,在加载页面之前发生了一些动画,然后发生切换。我将IF语句中的代码更改为ajax调用,以测试数据是否在slideToggle之前加载。它给了预期的效果。

    $.ajax({ 
         type: 'GET', 
         url: "/pagetoload", 
         dataType: "html", 
         success: function(data) 
         { 
          $loadElement.html(data); 
          $loadElement.slideToggle("slow"); 
         }, 
         error: function() 
         { 
          alert("Error!"); 
         } 
        });