jQuery .each不在IE9中工作

时间:2013-12-15 18:56:42

标签: javascript jquery ajax each

我在下面有这个ajax代码,它返回一个特定类别ID的产品列表,该列表在数据中传递:

然后循环播放列表并逐一显示。

下面的代码适用于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");
    }
});

};

我确实尝试过搜索此问题,但无法找到同样的问题,其中包括.each内部.ajax

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

  

...也许是因为你追加的元素没有关闭   。为什么要附加这样的脚本呢?你是   将相同的事件绑定到相同的.DivBorder元素和   再一次。

正如饼干怪说的那样