2011-03-01 92 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