我在遵循脚本时遇到问题,
$('#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中,这不会发生,为什么会这样?
有一种
更简单的方法可以通过更改父select
的值来更改所选option
。
$('select').val(colour)
将替换两个attr()
调用。更改select
的值会自动处理selected
更改
attr()
也不是selected
的首选方法,应该使用prop()
。这可能是您遇到的问题的根源