2011-04-10 21 views
9

मेरे सवाल का बहुत ही सरल है कि कैसे मैं लोडjQuery ajax लोड निश्चित div

$('#targetDiv').load('http://localhost/test.html #sourceDiv'); 
+0

क्या कोई कारण है कि आप केवल 'load() 'का उपयोग नहीं करते हैं? –

उत्तर

17

तो div AJAX प्रतिक्रिया का हिस्सा है के साथ की तरह jQuery ajax comand

$.ajax({ 
     url: "test.html", 
     success: function(){ 
      $(this).addClass("done"); 
     } 
    }); 

साथ कुछ div पुनः प्राप्त कर सकते हैं:

$.ajax({ 
    url: 'test.html', 
    dataType: 'html', 
    success: function(html) { 
     var div = $('#sourceDiv', $(html)).addClass('done'); 
     $('#targetDiv').html(div); 
    } 
}); 
+0

धन्यवाद लेकिन कुछ गलत है, यह बिल्कुल नहीं चलता है, जब मेरा लक्ष्य div समाप्त हो जाता है तो खाली होता है – Yovo

+0

@Yovo, क्या लौटा HTML में 'id =" sourceDiv "' के साथ एक div होता है? सर्वर प्रतिक्रिया के फायरबग को देखने का प्रयास करें और सफलता कॉलबैक में div चर लॉग करें। –

+0

वास्तव में फ़ायरबग दिखाता है कि यह लोड हो गया है। मैं पूरी फाइल लोड करने की कोशिश करता हूं और सबकुछ ठीक काम करता है लेकिन जब मैं विशेष डीआईवी चुनता हूं तो ब्राउजर इसे छुपा रहा है। – Yovo

6

यहां थोड़ा अलग है। इसके अलावा आपका लक्ष्य div डिफ़ॉल्ट रूप से छुपाया जा सकता है, इसलिए मैंने इसे दिखाने के लिए फीड इन प्रभाव में जोड़ा है। यदि आपका एचटीएमएल बदलने जा रहा है तो आप कैश में जोड़ना चाहेंगे: झूठी।

$.ajax({ 
    url: "html.htm", 
    type: "GET", 
    dataType: "html", 
    success: function (res) { 
     $("#targetDiv").html($(res).find("#sourceDiv") 
            .addClass('done')) 
        .fadeIn('slow'); 
    } 
}); 

आप रुचि रखते हैं, आप कैसे jQuery यहां लोड विधि jQuery Source Viewer

2

यहाँ करता है पर एक नज़र ले जा सकते हैं एक उदाहरण है कि मैं नेविगेशन के लिए अपनी साइट पर इस्तेमाल करते हैं।

<ul id="nav">   
    <li><a name="portfolio" href="portfolio.php" class="ajax_nav">PORTFOLIO</a></li> 
    <li><a name="biography" href="biography.php" class="ajax_nav">BIOGRAPHY</a></li> 
</ul> 

जावास्क्रिप्ट के लिए आप इसे आजमा सकते हैं।

var hash = window.location.hash.substr(1); 
var hash2 = window.location.hash.substr(1); 

// Menu items to lower main content 
var href = $('.ajax_nav').each(function(){ 
    var href = $(this).attr('href'); 
    if(hash==href.substr(0,href.length-4)){ 
     var toLoad = hash+'.html #ajax_content'; 
     $('#ajax_content').load(toLoad) 
    }           
}); 

// For inner overlay of featured content. 
var href2 = $('.feat_item_link').each(function(){ 
    var href2 = $(this).attr('href'); 
    if(hash2==href2.substr(0,href.length-4)){ 
     var toLoadFeatured = hash2+'.html #ajax_featured_content'; 
     $('#ajax_featured_content').load(toLoadFeatured); 
    }           
}); 

// For Bottom Navigation 
$('#nav li a').click(function(){ 

    var toLoad = $(this).attr('href')+' #ajax_content'; 
    $('#content').hide('fast',loadContent); 
    $('#load').remove(); 
    $('#wrapper').append('<span id="load">LOADING...</span>'); 
    $('#load').fadeIn('normal'); 

    window.location.hash = $(this).attr('href').substr(0,$(this).attr('href')); 
    function loadContent() { 
     $('#content').delay(1000).load(toLoad,'',showNewContent()); 
    } 
    function showNewContent() { 
     $('#content').show('normal',hideLoader()); 
    } 
    function hideLoader() { 
     $('#load').delay(1000).fadeOut('normal'); 
    } 
    return false; 
}); 

#load की आईडी सीएसएस में एनिमेटेड gif का उपयोग करती है।

$ (दस्तावेज़) .ready() में जावास्क्रिप्ट रखें और आपको सभी सेट होना चाहिए।