jQuery .live()和IE

时间:2010-11-08 20:53:59

标签: jquery internet-explorer

嘿所有, 我很难过。 我有以下代码..除IE之外的所有浏览器都很好(令人震惊......我知道)

 $('#lbAvailableResources option').live('click', function() {
    if($('#ulResourcesAssigned').text() === 'No resources assigned')
         $('#ulResourcesAssigned').text('');

    //create a new listitem that will be added to the list of assigned resources
    $('<li>').val($(this).val()).text($(this).text()).appendTo('#ulResourcesAssigned'); });

当页面加载时,列表框(#lbAvailableResources)通过ajax调用加载。

我也尝试过以下方法: 我尝试了delegate()方法......没有骰子 我试过生活...没有骰子

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

IE中的option元素没有任何事件。

select元素可以实现为OS小部件,在这种情况下,您可以忘记在控件的子部分上获取任何细粒度的鼠标事件。

change上的select事件是唯一与浏览器兼容的方式,可以通知选项更改。请注意,键盘导航也可能会触发此事件。

如果你想要的是一个控件,弹出一个选项列表,并允许你在点击任何选项时将内容添加到另一个元素,select元素是不合适的。请尝试使用包含按钮的弹出式div

答案 1 :(得分:0)

此外,检查您的代码,看看是否有任何地方使用console.log(),或者使用“,”结束值数组。这是其他两个IE浏览器无法工作的实例。


$('#lbAvailableResources option').die();

$('#lbAvailableResources option').live('click', function(event) {

  if ($('#ulResourcesAssigned').text() == 'No resources assigned') { //is absolute equality needed here?
    $('#ulResourcesAssigned').text('');
  } //i always use brackets, it makes for more readable code

  //create a new list item that will be added to the list of assigned resources
  $("li").val($(this).val()).text($(this).text()).appendTo('#ulResourcesAssigned'); //the "" are not needed
});

尝试上面的尝试,我不知道它是否有效