У меня есть этот АЯКС ниже код, который возвращающий список продуктов определенной категории 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
Любая помощь будет высоко ценится.
Там нет никаких проблем с '$ .each()' в IE9. Если он только выполняет итерацию первого элемента, то это, вероятно, означает, что некоторые ошибки приводят к остановке кода. Проверьте свою консоль разработчика. –
... возможно, потому что элемент ''. Почему вы все равно добавляете скрипт? Вы будете снова и снова связывать те же события с теми же элементами '.DivBorder'. –
Да, это было, закрывающий тег, я забыл добавить его после удаления части этой строки. Мне пришлось добавить скрипт так, потому что, когда я помещал mouseover, код мыши в внешний файл .js, они не запускались. Что вы предлагаете исключить эту часть добавления скрипта и оставить только html? – drinu16