2012-12-21 20 views
5

मैं नीचे दिए गए कोड की तरह है:

$('a.load-more').on("click",function(){ 
    $.get($('a.load-more').attr('href'), function(data) { 
    $(".next-page").remove(); 
    $('.block-grid').append(data); 
    event.preventDefault(); 
}); 

एचटीएमएल:

<li class="next-page"> 
<a href="http://example.com/ajax_all/" class="load-more">Load More →</a> 
</li> 

कौन सा रूप में आप देख सकते हैं, ajax सामग्री का URL लेता है .load-more तत्व से, इसे $ get विधि से गुजरता है जो तब सामग्री में खींचता है और इसे वर्तमान पृष्ठ में जोड़ता है।

अजीब बात यह है कि यह क्रोम में काम कर रहा है लेकिन फ़ायरफ़ॉक्स या सफारी नहीं है और उन ब्राउज़रों के लिए इंस्पेक्टरों में कोई जेएस त्रुटियां नहीं हैं।

AJAX का उपयोग करने में सामग्री खींचने के बजाय, यह यूआरएल http://example.com/ajax_all/ पर जाता है और इसकी सामग्री प्रदर्शित करता है।

मुझे लगता है कि यह क्रोम में क्यों काम करेगा और सफारी या फ़ायरफ़ॉक्स नहीं होगा। यह पता चलता है कि अपने event.preventDefault();get() जो अतुल्यकालिक है के अंदर क्या हो रहा है

+0

आपका कोड याद आ रही है एक '}); ' –

उत्तर

5

आप स्क्रिप्ट अवैध या गलत

$('a.load-more').on("click", function() { 
    $.get($('a.load-more').attr('href'), function (data) { 
     $(".next-page").remove(); 
     $('.block-grid').append(data); 
     event.preventDefault(); 

}); 

फिक्सिंग के बाद चिपकाया है।

$('a.load-more').on("click", function() { 
    $.get($('a.load-more').attr('href'), function (data) { 
     $(".next-page").remove(); 
     $('.block-grid').append(data); 
     event.preventDefault(); 
    }); 
}); 

कॉल बैक आपकी समस्या को ठीक करना चाहिए की preventDefault बाहर रखने।

$('a.load-more').on("click", function (e) { 
    $.get($('a.load-more').attr('href'), function (data) { 
     $(".next-page").remove(); 
     $('.block-grid').append(data); 

    }); 
    e.preventDefault(); 
}); 
+0

आप वैश्विक' event' वस्तु उपयोग नहीं करना चाहिए, आप घटना पैरामीटर 'click' घटना के लिए पारित उपयोग करना चाहिए। –

+1

@ रॉकेटहाज़मत ने यह भी ध्यान नहीं दिया कि, धन्यवाद और अपडेट किया गया। –

+0

शानदार! बस!! धन्यवाद :) – John

3

आपकी समस्या शब्द घटना है, यह क्लिक कॉलबैक के पैरामीटर में होना चाहिए।

कि प्रयास करें:

$('a.load-more').on("click", function(e){ 
    e.preventDefault(); 
    $.get($('a.load-more').attr('href'), function(data) { 
     $(".next-page").remove(); 
     $('.block-grid').append(data); 
    }); 
}); 
+0

कुछ ब्राउज़रों (आईई और क्रोम) में वैश्विक' ईवेंट 'ऑब्जेक्ट है, अन्य नहीं हैं। तो, हाँ, कृपया jQuery की प्रदत्त घटना ऑब्जेक्ट का उपयोग करें। –

+0

धन्यवाद, अगर आपको उपरोक्त लड़का पहले वहां नहीं मिला तो आपको टिक मिल जाएगी। वास्तव में जवाब की सराहना करते हैं! – John

संबंधित मुद्दे