2012-04-24 76 views
11

當我點擊一個選擇選項,我正在處理Changed事件。模擬鼠標點擊與jQuery的選擇選項

我想在代碼中模擬這一點,並且讓它看起來像用戶點擊該選項時一樣。

到目前爲止,在選項上設置'selected'屬性時不會像點擊它時那樣突出顯示它。

我可以在選項上觸發「更改」,並點擊我的處理程序,但列表中的選項沒有被選中,就像點擊一樣。

對此提出建議?

更新: 查詢選擇代碼工作得很好 - 感謝您的答覆。問題是我的(當然)。我在Jquery.Ajax Success:block之外選擇了代碼,所以我認爲它是有效的,但是ajax響應代碼正在緩存它。

+1

您是否在選擇該選項後嘗試使用.focus()? – nnnnnn 2012-04-24 23:42:26

+0

nope尚未嘗試關注。我應該提到,這是一個列表框而不是組合 - 所以具有多個屬性。 – R3lm 2012-04-24 23:45:37

回答

0
$("option").attr("selected","selected"); 

將選擇你想要的選項,然後你可以觸發該事件。

,不要忘記使用清除其他選項中選擇屬性:

$("option").attr("selected",null); 

$("option").removeAttr("selected"); 
+0

至少在IE中,使用multiple = multiple屬性時,選中的設置似乎不會像選中時突出顯示該選項。 – R3lm 2012-04-24 23:46:46

+0

它應該工作。這裏有一個例子:http://stackoverflow.com/q/2179529/1262700 – 2012-04-24 23:53:32

5
​$('option[value="4"]').attr('selected', 'selected').parent().focus();​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 

爲我工作。請參閱http://jsfiddle.net/TZVyh/1/

+0

我會嘗試它並更新謝謝! – R3lm 2012-04-24 23:50:16

+0

這很好奇。運行此元素後,元素周圍會有一個非常淺的灰色框 - 已選中,但未用鼠標單擊時突出顯示(藍色)。列表框具有焦點,當我向上/向下箭頭時,選定元素上方或下方的選項隨後將被選中,並且突出顯示藍色,並帶有我想要的樣式! – R3lm 2012-04-24 23:59:21

+0

你使用什麼瀏覽器? – 2012-04-25 08:55:27

0

...但列表中的選項未選中,就像點擊一樣。

我不完全瞭解你要做什麼,但$('select').change()的作用類似於$('select option').click()。在change事件$(this).val()是所選選項的值以及click事件中的值。

在這兩種情況下,你可以選擇與$('select[value="yourvalue"]').prop('selected', true);

+0

我應該詳細說明。當我點擊選項時,會發生兩件事:選項元素以藍色突出顯示(顯然某種樣式更改)。其次,變更事件被解僱。在代碼中的選項上設置'selected'屬性不會應用與點擊時相同的視覺樣式。 – R3lm 2012-04-24 23:48:32

+0

'選擇'是棘手的,你不能設計他們,他們依賴於操作系統。 – elclanrs 2012-04-24 23:50:35

5

一個選項,我用了jQuery數據表插件ColumnFilterWidgets工作,我需要做下面的執行篩選器操作(基於elclanrs和福斯特的答案):

$("option").attr('selected', 'selected').parent().focus(); 
$("option").parent().change(); 
+0

這應該是被接受的答案,因爲它是唯一一個「模擬」與用戶交互相同的確切行爲。 – 2015-05-19 03:53:56