2011-05-02 88 views
1

我知道如何在點擊時切換某個div項目,但如果我不想要某個項目加載呢?不只是隱藏在頁面中,而是在點擊之前不加載它?jquery和php:如何在點擊時加載某些div項目

我知道

$(document).ready(function(){ 
    $('#item').click(function(){ 
      $('#item2').toggle(); 
    }); 
}); 

將加載的一切,直到按下#ITEM2只會隱藏,但我不希望該項目隱藏,我不希望它加載到點擊。我這樣做是因爲如果我有很多大文件,它會減慢頁面。無論如何要做到這一點:點擊#item,然後加載#item2?

回答

2

您將不得不創建一個單獨的文件,其中包含div的內容(在本例中爲pagesource.php),然後使用AJAX進行異步加載。見jQuery.get

$('#item').click(function() { 
    // Load page the first time it is clicked (assuming the inner HTML of the div is blank) 
    if($('#item2').html() == '') { 
     $.get('pagesource.php', function(data) { 
      $('#item2').html(data); 
     }); 
    } 
    $('#item2').toggle(); 
}); 
+0

謝謝,我認爲這個幫助了我最多。但是你是否認爲這些應該是item2? – hellomello 2011-05-02 18:53:42

+0

是的,對不起,我沒有注意到兩個獨立的div。 – andrewtweber 2011-05-02 22:04:22

2

你需要使用Ajax來做到這一點。當用戶點擊時,異步加載內容,完成加載後顯示它。

0

Definetely您可以:

$(document).ready(function(){ 
    $('#item').click(function(){ 
      //This line will create 'item2' div dynamically 
      $('<div id="item2" />').hide().appendTo("body").toggle(); 
    }); 
}); 

如果你想檢查它是否存在,在這裏你必須:

$(document).ready(function(){ 
    $('#item').click(function(){    
      $item2 = $("#item2"); 
      if($item2.size() == 0) //Will create item2 if it doesn't exist 
      $item2 = $('<div id="item2" />').hide().appendTo("body"); 
      $item2.toggle(); 
    }); 
}); 

希望這有助於。歡呼聲

相關問題