jquery .on函数,动态内容在ie9中不起作用

时间:2013-02-04 10:26:11

标签: jquery events internet-explorer-9 handler

我在php生成的页面中有一个选择列表,我在显示的页面中多次加载动态内容。这些选项行中的每一行都应作为一个链接;因此,我使用过滤器连接select元素上的“click”处理程序以选择其选项元素。首先,这是我正在使用的HTML:

<select name="suggestions" id="suggestions" size="3">';
</select>';

之后我填写了以下几个选项:

<option value="NextPage.php?id=1">Doe, John</option>

随附的javascript如下:

$(document).ready( function() {
...
$("#suggestions").on('click', 'option', selectItem);
});

// receiving the list of options
function receiveList(data) {
  $('#suggestions').html(data);
  $('#suggestions').css('display', 'inline');
}

// The click handler for the options
function selectItem(e) {
  var txt = this.value;
  alert('Selected ' + txt);
  window.open(txt);  // or window.location.href = txt;
}

这个javascript在Firefox和Opera中完美运行;在IE9中,当单击选择器中的一行时,所选行变为蓝色但不执行任何操作,并且不会弹出警报(即不执行selectItem)。

我正在使用jquery-1.8.2.min.js,页面的第一行是“!doctype html”

有关如何规避此问题的任何建议吗?

1 个答案:

答案 0 :(得分:1)

您应该使用change上的select事件,而不是click上的option。试试这个:

$("#suggestions").on('change', selectItem);