2013-12-15 6 views
0

У меня есть этот АЯКС ниже код, который возвращающий список продуктов определенной категории ID, который передается в данном:JQuery .each не работает в IE9

Затем список петельного через и отображается один за другими ,

Код ниже работает как в хромированном, так и в 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"); 
    } 
}); 

};

Я действительно пытался искать эту проблему, но не смог найти такую ​​же проблему, которая включает в себя .each внутри .ajax

Любая помощь будет высоко ценится.

+0

Там нет никаких проблем с '$ .each()' в IE9. Если он только выполняет итерацию первого элемента, то это, вероятно, означает, что некоторые ошибки приводят к остановке кода. Проверьте свою консоль разработчика. –

+2

... возможно, потому что элемент ''. Почему вы все равно добавляете скрипт? Вы будете снова и снова связывать те же события с теми же элементами '.DivBorder'. –

+0

Да, это было, закрывающий тег, я забыл добавить его после удаления части этой строки. Мне пришлось добавить скрипт так, потому что, когда я помещал mouseover, код мыши в внешний файл .js, они не запускались. Что вы предлагаете исключить эту часть добавления скрипта и оставить только html? – drinu16

ответ

0

... возможно, потому что элемент, который вы добавляете, не имеет замыкания . Почему вы все равно добавляете скрипт? Вы - , чтобы связать одни и те же события с теми же элементами .DivBorder и снова.

Как печенье монстра сказал

Смежные вопросы