0

我正在使用 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 小提琴示例

http://jsfiddle.net/gchristman/gucgG/3/

4

4 回答 4

3

您应该使用 onchange 事件。试试这个:

$("select").append($('<option></option>').text("Add New Option")).change(function(){
    alert("test");
}));   

相关:chrome中选择选项元素上的单击事件

于 2012-04-17T20:07:30.233 回答
2

不要将点击事件附加到选项,只需订阅选择上的更改事件并检查它是否是您添加的项目?我已将您的新项目的值设为 0,以便在更改中识别它。

$("select").append($('<option></option').text("Add New Option").val(0));

$("select").change(function () {
    if $("select option:selected").val() == 0) {
        alert("test");
    } 
});
于 2012-04-17T20:11:12.603 回答
1

尝试

.on("click", function() {
    alert("test");
}));

代替:

.click(function() {
    alert("test");
}));

看看有没有效果?

于 2012-04-17T20:07:10.907 回答
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>
于 2014-07-24T15:07:52.343 回答