我正在使用jQuery 1.7.1。以下代码在附加.click事件的选择菜单中附加了一个附加选项。这段代码在firefox / ie9中工作得很好,但是在点击添加新选项时,在ie7 / 8中给出了以下错误。我已经尝试过没有任何运气的精选活动了。有没有人知道如何在传统的浏览器中使这项工作,如ie7 / 8
$("select").append($('<option></option>').text("Add New Option").click(function(){
alert("test");
}));
JS错误 SCRIPT5022:语法错误,无法识别的表达式:# jquery-1.7.1.js,第4179行第2期
JS小提琴示例
答案 0 :(得分:3)
您应该使用onchange事件。 试试这个:
$("select").append($('<option></option>').text("Add New Option")).change(function(){
alert("test");
}));
答案 1 :(得分:2)
不要将点击事件附加到选项,只需订阅选择的更改事件并检查它是否是您添加的项目?我已将新项目的值设为0,以便在更改中识别它。
$("select").append($('<option></option').text("Add New Option").val(0));
$("select").change(function () {
if $("select option:selected").val() == 0) {
alert("test");
}
});
答案 2 :(得分:1)
尝试
.on("click", function() {
alert("test");
}));
而不是:
.click(function() {
alert("test");
}));
看看是否有效?
答案 3 :(得分:0)
对于ie7 / 8使用javascript:JS fiddle
<select id="sel" onchange="test(this.value)"><option>option1</option></select>
<script language="javascript"><!--
//<![CDATA[
s=document.getElementById("sel");
var opt = document.createElement('option');
opt.value = "add";
opt.innerHTML = "Add New Option";
s.appendChild(opt);
function test(val){
if (val = "add"){
alert("test");
}
}
//]]>
--></script>