2011-10-10 18 views
6

Simliar başlıklarıyla ilgili soruları denedim, ancak çalışmazlar. (Örneğin: How to load AJAX content into current Colorbox window?)jQuery colorbox içeriğini değiştir

Ben ana sayfası vardır:

<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> 

Bu iyi çalışır, 1.html ait (basit) içerik Colorbox yüklenir (jQuery 1.6.1 dahil):

1.html:

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

Şimdi linke una tıkladı ınızda yoluyla içerik değiştirmek istiyorum. Bu işe yaramıyor. Ether Ek bir renk kutusu alıyorum veya hiçbir şey olmuyor.

Thanx!

+0

renk kutusu açıldığında (1.html içeriğiyle), 2.html bağlantısına sahip olduğu anlamına mı geliyor? Yani, temel olarak, renk kutusunun içeriğini değiştirmek için renk kutusunun içinde bir bağlantı istersiniz .. bu doğru mu? – Donamite

+0

1.html içeriği, colorbox'a yüklenir. "İçeriği Değiştir" bağlantısı burada okunmaktadır. Bağlantıyı kesiyorum ... Şimdi 2.html içeriğinin mevcut renk kutusunda yüklenmesini istiyorum – saromba

cevap

5

Mevcut ve gelecekteki colorbox bağlantılarındaki tıklamaları izlemek için jquery live() işlevini kullanabilirsiniz. Ayrıca, seçiciniz olarak rel'u kullanmamanızı tavsiye ederim. Bu özellik SEO'da kullanılmak üzere tasarlanmıştır. Bu örnekte ben class özniteliği rel adresinin seçici taşıdığınız Yani:

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

     return false; 
    }); 
}); 

Sonra sadece yeni ColorBox içeriği tetiklemek istediğiniz bir şey "open_ajax" sınıf ve bir href olduğundan emin olun . EG: için

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

Güncelleme jQuery 1.7+

() canlı kullanımdan kaldırıldı beri jQuery 1.7, siz bu şekilde yapmak gerekir:

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

Merhaba, bu işe yaramıyor. Şimdi 2.html içeriği ikinci bir renk kutusunda (birincinin arkasında) – saromba

+0

Evet öyle .. Kullandığım kodun tamamı ile güncelleyeceğim. Yeni bir renk kutusu açmaz, içeriği içine yükler ve mevcut renk kutusunu yeniden boyutlandırır. – Donamite

+0

çok teşekkürler. bu çalışıyor. – saromba