在ie9中附加两次的html元素

时间:2014-08-29 10:42:17

标签: jquery internet-explorer-9

以下脚本在大多数浏览器中都可以正常工作,除了ie9。

在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(); });
});

1 个答案:

答案 0 :(得分: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。:同时我可以缩小问题范围。 用于前置的选择器是原因。 ie9显然遇到了$(&#39; .page-id-28 .inhalt,.page-id-45 .inhalt&#39;); 它正在做两次。 是否有一种特定的方法来为ie9写入选择器?