我使用jQuery Mobile的.clone()函數來克隆表單中的div,以便我可以有可重複的部分,但是現在我遇到了嵌套選擇的問題。
一旦div被克隆並且嵌套的選擇被更新爲新的id,在下一次「刷新」之後會發生一些奇怪的事情。爲什麼在克隆DIV中的SELECT在刷新時有錯誤的行爲?
會發生什麼事是很奇怪的,選擇只需雙擊並把自身內部現有的選擇,這樣的結果是這樣的:
瀏覽器是Safari瀏覽器,我沒有做任何測試其他瀏覽器,因爲我只需要這個代碼在Safari上工作。
我所做的克隆DIV是:
var div = $.mobile.activePage.find('.repeatable').last().clone();
克隆,然後我更新的ID:
var newValue = pid +'-' + index;
$(this).attr('id', newValue);
$("label[for='"+ old +"']").attr('for', newValue);
,並在結束時,我刷新所有選擇有合適選擇一次.VAL值()被調用:
if ($(this).data('role') === 'select') {
$(this).selectmenu();
$(this).selectmenu('refresh');
}
的問題發生時的代碼的最後一部分被調用。在選擇正確顯示之前,但無法正常工作,一旦刷新了選擇,它將以正確的方式開始工作,但由於已經加倍並放置爲原始元素的子元素,UI會被混淆。
我添加了DIV以下列方式,克隆按鈕之前:
$('#clone_button').before(div);
可以採取什麼這個問題的由來?
編輯:看起來這可能是jQuery Mobile的一個bug:example。
您是否將克隆插入某處?即使用'.appendTo()',如[文檔](http://api.jquery.com/clone/)所示。 – Calavoow
是的,我編輯了我的問題 – bontoJR