2010-11-08 74 views
0

hey all, Im难住。 我在所有的浏览器以下罚款code..works除了IE(令人震惊......我知道)jQuery .live()和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调用加载页面时加载。

香港专业教育学院也尝试了以下内容:1。 我想委托()方法...没有骰子 2.我试过的liveQuery ...没有骰子

任何帮助,将不胜感激。

+0

只是一个侧面说明... .val()真的适用于表单元素之外吗?例如我只用过'input','select','textarea'和'button' - 我不认为我曾经见过它用在'LI'上。 – scunliffe 2010-11-08 20:56:33

回答

2

有在IE中option元件没有事件。

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

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

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

+0

Bobince ....你是对的钱。我修改了代码绑定,如下所示:$('#lbAvailableResources')。bind('change',function(){}),它就像一个魅力。谢谢您的帮助。你从哪里学到的?你能把我指向一个网站吗?或者你是通过苦难来了解它的吗? – Alex 2010-11-10 02:38:23

+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 
}); 
 

给上面的一个尝试,我不知道它是否工作