我正在使用flexslider小部件來顯示照片庫。它使用簡單的標記,因爲當文檔加載時,它適應視口的標記以及在文檔準備就緒時使用腳本進行樣式化。加載頁面時一切正常。但我需要添加一個「選擇器」,我的意思是,當有人點擊一個鏈接時,應該在flexslider小部件中加載一個新的畫廊。所以,使用jquery,我選擇了相應的gallery div並用$。(「#galleryID」)寫入新內容。從代碼調用時腳本不起作用,但在控制檯中輸入時腳本不起作用
因此,DOM結構會發生變化,但flexslider不會顯示,因爲它需要通過運行適應視口和樣式的js代碼來「完成」。然後,我嘗試在修改div之後「重新運行」所需的腳本,但div保持空白。如果我從控制檯窗口運行相同的腳本,div顯示正確。
現在我使用$ .getScript()jquery方法強制重新加載適配和樣式腳本,但有時會工作,有時不會。在Firefox中工作正常:每次你點擊選擇器,加載畫廊OK並運行腳本,但Chrome並沒有,有時它會,有時候div仍然是白色的(使用正確的標記,但不需要進行修改)。
<script type='text/javascript'>
$('a.pgal').click(function() {
var id = $(this).attr('hashtag');
/*get the gallery elements (imgs, titles, etc)*/
$.get("listgal.php", {hashtag:id}, function(objetogal){
var x=0;
/*create the flexslider markup*/
var codigo='<div id="slider" class="flexslider"><ul class="slides">';
var codigocarousel='<div id="carousel" class="flexslider"><ul class="slides">';
var elementos=objetogal.length;
for(x=0;x<elementos;x++)
{
codigo=codigo+ '<li><img src="fotos/'+ objetogal[x].img +'" /><p class="flex-caption">'+objetogal[x].pie+'</p></li>'
codigocarousel=codigocarousel+'<li><img src="fotos/'+ objetogal[x].img +'" />';
}
codigo=codigo+'</ul></div>';
codigocarousel=codigo+codigocarousel+'</ul></div>';
/*Change the gallery div with this new markup*/
$("#galeriaID").empty().append(codigocarousel);
}, "json");
$.getScript("js/renueva.js", function(){
});
return false;
});
</script>
renueva.js 這是需要的風格和適應視使用標記作爲源庫中的代碼。它的代碼我試圖在div刷新後包含在同一個腳本中,但它沒有做任何事情。但在控制檯中運行很好。我正在嘗試使用$ .getScript,但有時使用Chrome處理標記,有時不使用Chrome。使用Firefox的作品完美
$('#carousel').flexslider({
animation: "slide",
controlNav: false,
animationLoop: false,
slideshow: false,
itemWidth: 90,
itemMargin: 5,
asNavFor: '#slider'
});
$('#slider').flexslider({
animation: "slide",
controlNav: false,
animationLoop: false,
slideshow: false,
sync: "#carousel",
start: function(slider){
}
});
的HTML標記
<div class="col-xs-12 w12 col-md-9" id="galeriabr">
<div id="slider" class="flexslider">
<ul class="slides">
<li>
<img src="fotos/armas.jpg" />
<p class="flex-caption">Se presentan 98 delitos al día en Michoacán</p>
</li>
<li>
<img src="fotos/sep.jpg" />
<p class="flex-caption">Se tomarán medidas para garantizar evaluación a maestros: SEP</p>
</li>
<li>
<img src="fotos/eleccion.jpg" />
<p class="flex-caption">Scioli gana elección de Argentina pero puede haber segunda vuelta</p>
</li>
</ul>
</div>
<div id="carousel" class="flexslider">
<ul class="slides">
<li>
<img src="fotos/armas.jpg" />
</li>
<li>
<img src="fotos/sep.jpg" />
</li>
<li>
<img src="fotos/eleccion.jpg" />
</li>
</ul>
</div>
</div>