在IE中没有触发列表框选项的双击事件

我想将一个事件附加到列表框中的选项标签,以便当我单击其中一个时,它会移动到另一个列表框。

我有这个代码:

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

在Firefox中运行良好,但在IE中事件根本没有被触发。 我不能在select节点上双击,因为我只需要移动被点击的节点。 有任何想法吗?

试试这个:

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

更新(GMT 10:21)

尝试取出直播:

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

看这个例子 – http://jsfiddle.net/hr7Gd/

更新(格林尼治标准时间10:45)

你的另一个选择是在select(运行! dblclick()上运行dblclick() ,并选择了获取wich选项并使用它:

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

看这个在这里工作的例子 – http://jsfiddle.net/hr7Gd/1/

Doubleclick不会触发,即如果您尝试将它们添加到选项元素,无论您如何添加它。 我在IE中工作的唯一一件事就是将事件监视添加到选择本身,然后查看所选元素:

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

知道了 – 我错误地认为我无法使用select的双击事件。

这是工作代码:

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

我没想到这会起作用的原因是我认为它会移动所有选定的元素而不仅仅是点击的元素。 但是,似乎双击的第一次单击仅选择一个元素,然后在双击时触发此事件并将其移过。