2014-08-29 75 views
1

以下腳本在除ie9以外的大多數瀏覽器中都可以正常工作。在ie9中追加兩次html元素

在ie9中顯示兩行div。但是,dom只顯示​​一行。

ie9有什麼特別的要考慮?

感謝您的關注。

$(function() { 
var $window = $(window); 
var hasPrepended = false; 
var portDivs = ['<div class="port1"></div>','<div class="port2"></div>','<div class="port3"></div>', 
'<div class="port4"></div>','<div class="port5"></div>','<div class="port6"></div>']; 
cfunction portraits() { 
if (($window.width() >= 440) && ($window.width() <= 640)){//start if 
    if (hasPrepended === true) { 
     return; 
    } 

    hasPrepended = true; 
    var portrait_C = $('<div class="portrait-C"></div>'); 
    $(".page-id-28 .inhalt, .page-id-45 .inhalt").prepend(portrait_C).hide().fadeIn('slow'); 
for (var portIdx = 0; portIdx <= portDivs.length; portIdx++)// start for 
{ 
    var div = portDivs[portIdx]; 
    $(".portrait-C").append(div); 
}//ende for 
}//ende if 
else{ 
    hasPrepended = false; 
    $('.portrait-C').remove(); 
    } 
}//end function portraits 

$window.load(function() { portraits(); }); 
$window.resize(function() { portraits(); }); 
}); 
+0

你能發表一個小提琴嗎?http://fiddle.jshell.net/ – 2014-08-29 10:47:43

+0

是的,我會但首先我必須弄清楚它是如何工作的,謝謝 – timholz 2014-08-29 21:15:09

+0

jsfiddle的加入 - 見下文。爲了看到效果,請調整瀏覽器窗口的大小。 theo – timholz 2015-05-08 21:43:42

回答

0

這裏是一個鏈接到: http://jsfiddle.net/timholz/zhean8pv/18/

$(function() { 
var $window = $(window); 
var hasPrepended = false; 
var portDivs = ['<div class="port1"></div>','<div class="port2"></div>','<div class="port3"></div>', 
'<div class="port4"></div>','<div class="port5"></div>','<div class="port6"></div>']; 
function portraits() { 
if (($window.width() >= 440) && ($window.width() <= 640)){//start if 
    if (hasPrepended === true) { 
     return; 
    } 

    hasPrepended = true; 
    var portrait_C = $('<div class="portrait-C"></div>'); 
    $(".inhalt").prepend(portrait_C).hide().fadeIn('fast');//see original line below 
for (var portIdx = 0; portIdx <= portDivs.length; portIdx++)// start for 
{ 
    var div = portDivs[portIdx]; 
    $(".portrait-C").append(div); 
}//ende for 
}//ende if 
else{ 
    hasPrepended = false; 
    $('.portrait-C').fadeOut('fast', function(){ 

     $('.portrait-C').remove()}); 
    } 
}//end function portraits 

$window.load(function() { portraits(); }); 

$window.resize(function() { portraits(); }); 
}); 

,而不是照片,我使用的顏色 爲簡單起見,我改變了原來的線

$(".page-id-28 .inhalt, .page-id-45 .inhalt").prepend(portrait_C).hide().fadeIn('slow');//original line 

水平調整結果窗口 我希望這說明了這個問題。 謝謝

p.s .:同時我可以縮小這個問題。 用於前置的選擇器是原因。 ('。page-id-28 .inhalt,.page-id-45 .inhalt'); ie9顯然與$('。page-id-28 .inhalt,.page-id-45 .inhalt' 它正在做兩次。 有沒有一種爲ie9編寫選擇器的具體方法?

+0

js小提琴添加,爲了看到效果的工作,請調整瀏覽器窗口的大小。 – timholz 2015-05-08 21:44:20