方法1:只注意到在方法2下面的解決方案是不工作的時候改變了下拉使用鍵盤值和標籤了。
因此,在這種方法中,我在下拉菜單上使用了一個文本框,因此您不必擔心更改下拉值。 DEMO
PS:我用的JQuery UI Position API
var $ddInput = $("#dropdownInput");
$ddInput.position({
my: "left top",
at: "left top",
of: "#dropdownlist"
});
$("#dropdownlist").change(function (event) {
$ddInput.val('foo');
});
方法2:我們需要一個int標誌的變化再次調用一下,見下面我的代碼。 DEMO
var optionChanged = 0;
$("#dropdownlist").change(function (event) {
var selected = $(this).find(":selected");
selected.attr('data-orig', selected.val());
selected.text('foo');
optionChanged = 1;
});
$("#dropdownlist").click (function() {
if (optionChanged == 2) {
var selected = $(this).find(":selected");
var tmp = selected.attr('data-orig');
selected.attr('data-orig', selected.val());
selected.text(tmp);
}
optionChanged = 2;
});
這個下拉菜單有一個打開的事件嗎? – gdoron 2012-02-08 19:34:14
這樣做的目的是什麼?你想達到什麼目的? – elclanrs 2012-02-08 19:34:25
@gdoron據我所知,一個打開的事件不可用。 – Jonathan 2012-02-08 19:36:50