2013-03-14 95 views
4

這個腳本在Firefox或Chrome工作,但只得到在IE9一半這是我們網站上的瀏覽器。對象不支持屬性或方法「追加」在IE9

我得到的問題是它拋出這個錯誤。

SCRIPT438:對象不支持屬性或方法 '追加' calc_ajax.js 26行字符21

在這條線:item.append(聯繫);

和im卡住了原因。任何幫助,將不勝感激。

$(document).ready(function(){ 
$('.first a.btn').click(function(){ 
    $('.first a.active').removeClass('active'); 
    $(this).addClass('active'); 
    $('.second .title').addClass('active'); 

    var id = $(this).data('cat-id'); 

    var wrap = $('<div>'); 

    $.ajax({ 
     url: script_url, 
     type: "post", 
     data: {"cat": id}, 
     dataType: "json" 
    }).success(function(result){ 
     if(result.status == "ok"){ 
      $.each(result.data, function(i, elem){ 
       item = $("<div class='body-area'>").append($("<img src='" + elem.image + "'>")); 
       link = $("<a href='#results' class='btn'>"); 
       link.text(elem.name); 
       link.data('subcat-id', elem.id); 
       item.append(link); 

       wrap.append(item); 

      }); 
      $('.second .body').html(wrap).slideDown('fast'); 
     } 
    }); 
}); 

$('.second a.btn').live('click', function(){ 
    $('.second .body-area.active').removeClass('active'); 
    $(this).parent().addClass('active'); 

    var sub_id = $(this).data('subcat-id');   

    $.ajax({ 
     url: script_url, 
     type: "post", 
     data: {"subcat": sub_id}, 
     dataType: "json" 
    }).success(function(result){ 
     if(result.status == "ok"){ 
      $('.third .title').text(result.data.title); 
      $('.third .body').html(result.data.body); 
      $('.third').slideDown('fast'); 
     } 
    });   
}); 

});

+0

你不聲明'item'也不'link'的問題,所以他們是全球性的,可能會引發問題,IE很特別,但不知道是否這是問題... – elclanrs 2013-03-14 09:51:18

+0

有關如何做到這一點的更多信息,因爲這段代碼不是由我寫的,而且我對js的知識很少,不幸的是,對不起,聽起來像一個愚蠢的屁股。 – JoeLee 2013-03-14 09:53:19

+0

@JoeLee是誰寫的,應該問這些問題 – 2013-03-14 10:03:22

回答

9

window.item是Internet Explorer中一種特殊的方法因爲你貼的代碼沒有聲明一個局部變量item它試圖重新分配IE中的一個本地方法。 IE不允許重新分配,所以你沒有真正得到你期望的item變量中的jQuery對象,因此append方法不可用。

修復代碼的最簡單方法是在使用item變量之前添加var。我扔在一起的jsfiddle顯示它如何修復在IE http://jsfiddle.net/httyY/

1

嘗試:

$.each(result.data, function(i, elem){ 
    var item = $("<div class='body-area'>").append($("<img src='" + elem.image + "'>")); 
    var link = $("<a />", {"href" :"#results", "class": "btn"}); 
    link.text(elem.name); 
    link.data('subcat-id', elem.id); 
    item.append(link); 
    wrap.append(item);  
}); 
+0

非常感謝你爲蘇德赫,非常感謝的人: D – JoeLee 2013-03-14 10:10:23

+0

不客氣...... :) – 2013-03-14 10:13:16

相關問題