2011-10-10 8 views
6

की jQuery परिवर्तन सामग्री मैंने सिमलीर खिताब के साथ पहले से ही प्रश्नों की कोशिश की, लेकिन वे काम नहीं करते हैं। (उदाहरण के लिए: How to load AJAX content into current Colorbox window?): (jQuery 1.6.1 सहित)कलरबॉक्स

<script type="text/javascript" src="js/jquery.colorbox.js"></script> 
<link rel="stylesheet" type="text/css" href="css/colorbox.css" /> 
<script> 
jQuery(function(){ 
    $("#aLink").colorbox(); 
    $('#blub a[rel="open_ajax"]').live('click', function(e){ 
     e.preventDefault(); 
     var url = $(this).attr('href'); 
     $.ajax({ 
      type: 'GET', 
      url: url, 
      dataType: 'html', 
      cache: false, 
      beforeSend: function() { 
       //$('#cboxContent').empty(); 
       $('#cboxLoadedContent').empty(); 
       $('#cboxLoadingGraphic').show(); 
      }, 
      complete: function() { 
       $('#cboxLoadingGraphic').hide(); 
      }, 
      success: function(data) { 
       $('#cboxLoadedContent').append(data); 

      } 
     }); 
    }); 
    }); 
</script> 
<a href="1.html" id="aLink">colorbox open</a> 

यह ठीक काम करता है, (सरल) 1.html की सामग्री colorbox में भरी हुई है

मैं मुख्य पृष्ठ है:

1.html:

<div id="blub"> 
    <a rel="open_ajax" href="2.html">Change Content</a> 
</div> 

अब मैं लिंक पर klicking द्वारा सामग्री बदलना चाहते हैं। यह काम नहीं करता है। ईथर मुझे एक अतिरिक्त रंगबॉक्स मिलता है, या कुछ भी नहीं होता है।

Thanx!

+0

क्या आपका मतलब है कि जब रंगबॉक्स खुलता है (1.html से सामग्री के साथ), तो इसका लिंक 2.html है? तो मूल रूप से, आप कलरबॉक्स की सामग्री को रंगबॉक्स की सामग्री को बदलने के लिए एक लिंक चाहते हैं .. क्या यह सही है? – Donamite

+0

रंगीन बॉक्स में 1.html की सामग्री लोड की गई है। "सामग्री बदलें" लिंक वहां मौजूद है। मैं लिंक पर क्लिक करता हूं ... अब मैं चाहता हूं कि 2.html की सामग्री मौजूदा रंगबॉक्स – saromba

उत्तर

5

आप मौजूदा और भविष्य के रंगीन लिंक पर क्लिक देखने के लिए एक jquery live() फ़ंक्शन का उपयोग कर सकते हैं। साथ ही, मैं अनुशंसा करता हूं कि आप अपने चयनकर्ता के रूप में rel का उपयोग न करें। वह विशेषता एसईओ में उपयोग के लिए है। तो इस उदाहरण में मैं वर्ग विशेषता को rel विशेषता से अपने चयनकर्ता स्थानांतरित कर दिया है:

$(document).ready(function() { 
    $('a.open_ajax').live('click', function(){ 
     $.colorbox({ 
      open:true, 
      href: this.href 
      //plus any other interesting options  
     }); 

     return false; 
    }); 
}); 

तो बस यकीन है कि कुछ भी है कि आप नए colorbox सामग्री ट्रिगर करना चाहते हैं "open_ajax" वर्ग और एक href है कि बनाने के । ईजी: के लिए

<a class="open_ajax" href="colorboxPage.html">Open</a>

अद्यतन jQuery 1.7+

jQuery 1.7 के लिए, के बाद से लाइव() पदावनत किया गया है, तो आप इसे इस तरह से करने की आवश्यकता होगी:

$(document).on("click", "a.open_ajax", function() { 
    //everything that was in the live() callback above 
}); 
+0

हाय में लोड हो जाएगी, यह काम नहीं करता है। अब 2.html की सामग्री दूसरे रंगबॉक्स में है (पहले के पीछे) – saromba

+0

हां यह करता है .. मैं इसे इस्तेमाल किए गए पूर्ण कोड के साथ अपडेट करूंगा। यह एक नया रंग बॉक्स नहीं खोलता है, लेकिन इसमें सामग्री लोड करता है और फिर मौजूदा रंगबॉक्स का आकार बदलता है। – Donamite

+0

बहुत बहुत धन्यवाद। यह काम। – saromba

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