2012-05-09 70 views
1

這裏的情況: 我有一個垂直菜單與div。每個div都有一個id。當我點擊一個div時,它使用以下方法在div內添加了一個選擇列表:jQuery - 與選擇/選項+點擊/模糊衝突的問題

$ ('#mydiv').on ('click', function () { 
    var select = '<select name="menuList"><option value="test">test</option>...</select>'; 
    $ ('#mydiv').html (select); 
}) ; 

我想要做的事很簡單。我想在選擇選項時將用戶選擇定義爲文本。我曾經試過,但它不工作:

$ ('select[name="menuList"]').on ('blur', function () { 
    $ ('#mydiv').html ($ ('select[name="menuList"] option:selected').val ()); 
}); 

此外,另一個問題是,當我從列表中選擇一個選項,選定字段不保留用戶的選擇,它可以追溯到名單的第一位。基本上,問題不是真正的問題,因爲我立即用包含他選擇的文本字段來替換列表,但我想了解爲什麼會發生這種情況。

+0

可以請你給一個jsfiddle –

回答

2

由於您在點擊事件上設置了HTML(破壞性),因此每次單擊div時都會替換html。你最好在document.ready和html上設置html,並使用hide/show或者創建一個標誌,在設置內容時設置它,並且每次點擊都檢查它,這樣你就不會重新創建菜單了。

+0

實際上,模糊只是在div被定義之後定義的。但你可能是對的,我會在啓動時創建元素,並根據點擊隱藏/顯示它們。 – Simon