2010-06-01 4 views
1

Не уверен, что это возможно, но можете ли вы загрузить и выгрузить в div на jquery toggle?Jquery load to div on toggle

что-то вроде этого?

$("#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 Docs:

+0

Спасибо, Патрик даст вам повод, я знал, что мое было совершенно неправильно, но я даже не был уверен, что это можно сделать. – user351657

+0

Звучит неплохо. Просто примечание, '.is()' не будет правильным, если перед загрузкой было какое-то другое содержимое внутри '# IDOFDIVTOLOAD'. Если это так, вам нужно будет изменить тест в 'if()'. – user113716

0

Я побежал через это и вес Я попробовал это, произошла небольшая анимация, которая была до загрузки страницы, затем произошел переход. Я изменил код в инструкции IF на ajax-вызов, чтобы проверить, были ли данные загружены до slideToggle. Это дало желаемый эффект.

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