jQuery单击不使用ie7 / 8中的select选项

时间:2012-04-17 20:04:27

标签: javascript jquery jquery-ui

我正在使用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 个答案:

答案 0 :(得分:3)

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

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

相关:Click event on select option element in chrome

答案 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>