AJAX

2014-04-14 8 views
8

के माध्यम से गतिशील रूप से जेनरेट की गई सामग्री के साथ ट्विटर बूटस्ट्रैप पॉपओवर मैं उपयोगकर्ता को भेजी गई ईमेल सूची दिखाने के लिए बूटस्ट्रैप पॉपओवर सेट अप करने के लिए तैयार हूं। इसलिए सामग्री ajax कॉल के माध्यम से गतिशील रूप से जेनरेट की जाती है।AJAX

$('#liste').on('mouseover', 'tr[data-toggle=popover]', function(e) { 
     var $tr = $(this); 
     id = $(this).data('id'); 
     $.ajax({ 
      url: '<?php echo $this->url(array(), 'loadRelance');?>', 
      data: {id: id}, 
      dataType: 'html', 
      success: function(html) { 
       $tr.popover({ 
        title: 'Relance', 
        content: html, 
        placement: 'top', 
        html: true, 
        trigger: 'hover' 
       }).popover('show'); 
      } 
     }); 
    }); 

आप देख सकते हैं, यह <table> की <tr> के पर प्रत्येक mouseover पर एक ajax कॉल ट्रिगर: यहाँ कोड के अपने टुकड़ा है। चूंकि यह पृष्ठ पहली बार लोड होने पर पूरी तरह से काम करता है, जब मैं भेजे गए मेल की संख्या में परिवर्तन करता हूं, तो जब मैं इसे फिर से करता हूं तो यह अद्यतन सूची नहीं दिखाता है (यह काम करता है अगर मैं निश्चित रूप से पृष्ठ को पुनः लोड करता हूं)। मैं Chrome डेवलपर टूलबार में अद्यतन सूची में XHR अनुरोधों के पूर्वावलोकन में देख सकता हूं लेकिन यह पॉपओवर की सामग्री में लोड नहीं करता है। यह पुरानी सूची रखता है।

किसी भी मदद की बहुत सराहना की जाएगी। धन्यवाद!

+1

आप प्रत्येक माउसओवर के लिए एक नया पॉपओवर बना रहे हैं। आपको $ tr.popover ('नष्ट') का उपयोग करना चाहिए; $ Tr.popover ({विकल्पों}) पॉपओवर ('शो')। –

+0

बहुत धन्यवाद! '$ Tr.popover ('नष्ट') जोड़ना;' अजाक्स 'कॉल से ठीक पहले चाल चल रही थी! – D4V1D

उत्तर

10

आप का उपयोग कर मौजूदा पॉपओवर को नष्ट करना चाहिए:

$tr.popover('destroy'); 

फिर अपने कोड का उपयोग कर नए पॉपओवर बनाएँ:

$tr.popover({options}).popover('show');