IE javascript麻烦没有触发事件

时间:2012-11-22 16:25:39

标签: jquery

我遇到以下脚本的问题,

$('#colours li a').click(function(e) {

    $('option').attr("selected", false);

    var selected = $(this).parent("li");
    var colour = selected.attr("class");
    colour = colour.replace("rounded ", "");

  alert(colour);

    $('option[value=' + colour + ']').attr('selected',true);


    if($("#" + colour).hasClass("active")) { return; }

    var active = $(".active");
    var next = $("#" + colour);

    $('#colours li').removeClass("active");
    selected.addClass("active");

    $('option[value=' + colour + ']').attr('selected',true);
    e.preventDefault();
});

基本上它的作用是点击它应该在隐藏的选择中选择一个值但是在IE8中这没有发生,为什么会这样?

1 个答案:

答案 0 :(得分:1)

通过更改父option的值,可以更简单地更改所选select

$('select').val(colour)将取代两个attr()来电。更改select的值会自动处理selected更改

attr()也不是selected的首选方法,应使用prop()。这可能是您遇到的问题的根源