2013-10-26 64 views
0

這裏是我的html代碼如何模擬內容編輯元素上進行編輯的點擊

<ul class="options-list"> 
    <li contenteditable="true">Customer List</li> 
    <li contenteditable="true">Product List</li> 
</ul> 

當第一李用戶點擊,內容變爲可編輯,同樣發生在第二個div。現在需求是,在第一次編輯時,如果用戶按下Enter鍵,我需要停止編輯第一個li並移動到第二個li並自動啓動編輯模式。

這裏是我的JS代碼

$('.options-list').on('keypress', 'li', function (e) { 
    if (e.keyCode === 13) { 
     $(e.currentTarget).blur(); //this works 
     $(e.currentTarget).siblings('li').click(); // this doesn't work 
     return false; 
    } 
}) 

任何幫助,將不勝感激

回答

1

相反的.click(),您可以使用.focus()

例如:

$('.options-list').on('keypress', 'li', function (e) { 
    if (e.keyCode === 13) { 
     $(e.currentTarget).blur(); 
     $(e.currentTarget).siblings('li').focus(); 
     return false; 
    } 
}) 

甲的jsfiddle演示是here

+0

它的工作感謝 –

+0

焦點()的問題是,將光標放在內容的開始位置,而不是鼠標位置。有沒有辦法來解決這個問題? – danijar

1

變化$(e.currentTarget).siblings('li').click();$(e.currentTarget).next('li').focus();

0

而不是使用.siblings('li').click();

可以使用.next('li').focus();

這將幫助您將焦點移到下一個li元素,

.siblings('li')將移動它列表中的最後一個元素,

.next()會將焦點連續移動到下一個li元素。

試試這個jsfiddle demo example

感謝。