使用jQuery在Chrome扩展程序中下拉的事件未触发

时间:2012-01-09 21:23:42

标签: jquery google-chrome-extension

这是我的代码:

$("input[name=myText]").replaceWith("<input name='myText' type='text'/>" +
    "Select a number: <select name='numberSelect' id='numberSelect'>" +
    "<option value=''></option>" +
    "<option value='.5'>.5</option>" +
    "<option value='1'>1</option>" +
    "<option value='1.5'>1.5</option>" +
    "<option value='2'>2</option>" +
    "</select>"
    );

$("#numberSelect").change(function () { alert('hello') });

我无法在下拉列表中选择要触发的项目。

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:0)

试试这个

$("input[name=myText]").replaceWith($("<input name='myText' type='text'/>" +
    "Select a number: <select name='numberSelect' id='numberSelect'>" +
    "<option value=''></option>" +
    "<option value='.5'>.5</option>" +
    "<option value='1'>1</option>" +
    "<option value='1.5'>1.5</option>" +
    "<option value='2'>2</option>" +
    "</select>").find('select').change(function () { alert('hello') }).end()
    );

答案 1 :(得分:0)

尝试使用$ .live http://api.jquery.com/live/

$("#numberSelect").live("change", function(){
  alert('hello')
});

<强>更新

如下面的abraham所述,从jQuery 1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。所以新代码应该是:

$("#numberSelect").on("change", function(){
  alert('hello')
});