2011-03-01 76 views
6

不费一枪我要附加一个事件的选项标签的列表框中,这样,当我点击其中的一个,它移动到另一个列表框中。双击事件在IE

我有这样的代码:在Firefox

$('#' + opts.leftListId + ' > option').live('dblclick', function() { 
    // Move the object 
}); 

工作正常,但在IE事件完全不被解雇。我不能在选择节点上双击,因为我只需要移动被点击的那个节点。 任何想法?

回答

6

试试这个:

$('#' + opts.leftListId).find('option').each(function(){ 
    $(this).live('dblclick', function() { 
    // Move the object 
    }); 
}); 

更新(10:21 GMT)

尝试取出活:

$('#' + opts.leftListId).find('option').each(function(){ 
    $(this).dblclick(function() { 
    // Move the object 
    }); 
}); 

见这个例子 - http://jsfiddle.net/hr7Gd/

更新(10:45 GMT)

你的另一个选择是在其上运行选择dblclick()(!它的工作原理)和获得至极选项淡水河谷已被选中,与工作:

$("select").dblclick(function() { 
    var str = ""; 
    $("select option:selected").each(function() { 
    str += $(this).text() + " "; 
    }); 
    $("span").text(str); 
}) 
.trigger('change'); 

见这个例子在这里工作 - http://jsfiddle.net/hr7Gd/1/

+0

不,仍然没有运气。它找到选项并遍历它们,但双击时没有任何反应。虽然谢谢! – 2011-03-01 10:16:02

+0

@ Devbook.co.uk - 看到我的更新,请尝试取出'.live()' – Alex 2011-03-01 10:22:53

+0

还不行...... – Alex 2011-03-01 10:26:54

3

明白了 - 我是错误的想法,我不能使用选择的双击事件。

这是工作代码:

$('#' + opts.leftListId).dblclick(function() { 
     // Move selected options: $('#' + opts.leftListId + ' :selected') 
}); 

我不认为这会工作的原因是,我认为这将在所有选中的元素移动,而不是仅仅一个点击。但是,看起来双击的第一次点击只会选择一个元素,在该事件触发双击之前将其移过。

+0

co.uk,看起来我们一起有了尤里卡时刻。如果你看看我的答案,你会看到如何获得期权价值。 – Alex 2011-03-01 10:48:42

+0

现在这就是我称为团队工作:) – Alex 2011-03-01 10:50:01

7

DoubleClick就不会开火,也就是说,如果你试图将它们添加到选择的元素,无论你如何添加它。我已经在IE中得到了工作的唯一一件事就是添加事件看,以选择自己再看看选定的元素:

$("select").dblclick(function() { 
    $("select option:selected").each(function() { 
    alert(this); 
    }); 
});  
+2

这应该是公认的答案。 – user3281466 2014-09-05 11:14:43