2010-06-01 68 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!"); 
         } 
        });