2013-12-15 58 views
0

工作,我有這樣的Ajax代碼下面被返回的該數據通過一個特定的類別ID的產品列表:jQuery的。每次不是在IE9

列表中,然後通過一個循環顯示的一個。

以下代碼適用於Chrome和Firefox,但在IE9中它只會顯示第一個產品。

function getProducts(catID) { 
$('#ChangeContent').html(''); 
$.ajax({ 
    type: "POST", 
    url: "Mainpage.aspx/GetProducts", 
    data: "{categoryID:" + catID + " }", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (msg) { 
     allProducts = msg.d; 

     $.each(msg.d, function (i, value) { 

       var desc = ""; 
       if (value.description.length > 70) { 
        desc = value.description.substring(0, 67); 
        desc += " ..."; 
       } 
       else { 
        desc = value.description; 
       } 
       var htmll = "<div class='OutsideDiv' onclick='displayProduct(" + value.productID + ")'><table class='DivBorder'> <tr > <td class='imageBox'><img alt='' src='" + value.image + "' /></td> </tr> <tr > <td class='title'>" + value.name + "</td>"; 
       htmll += " </tr> <tr> <td class='desc'>" + desc + " </td> </tr> <tr> <td class='price'>€" + value.price + "</td> </tr> </table></div>"; 
       htmll += " <script type='text/javascript'>$('.DivBorder').mouseover(function(){$(this).css('border-color', '#cb510a');$(this).css('background-color', '#e2e2e2');});$('.DivBorder').mouseout(function(){$(this).css('border-color', '#bdbdbd');$(this).css('background-color', '#f6f6f6');});"; 

       $('#ChangeContent').append(htmll); 

      }); 

    }, 
    error: function (error) { 
     alert("Errorrrrrr"); 
    } 
}); 

};

我曾嘗試尋找這個問題,但無法找到,其中包括。每個阿賈克斯

任何幫助將非常感激這裏面同樣的問題。

+0

有與'$'。每次在IE9()沒有問題。如果它僅迭代第一個項目,那麼可能意味着導致代碼停止的錯誤。檢查你的開發者控制檯 –

+2

...也許是因爲您追加的''。你爲什麼要追加一個這樣的腳本?您將一遍又一遍地將相同的事件綁定到相同的'.DivBorder'元素。 –

+0

是的,就是這樣,結束標記,我忘了在刪除部分字符串後添加它。我不得不追加這樣的腳本,因爲當我將mouseover代碼放在外部.js文件中時,它們並未被解僱。你有什麼建議,以消除腳本附加部分,只留下HTML? – drinu16

回答

0

...也許是因爲你追加的元素沒有關閉 。你爲什麼要追加一個這樣的腳本?您將 重新綁定到同一個.DivBorder元素上,並將 綁定到同一個事件上。

正如餅乾怪獸說