2013-04-10 37 views
0

我在我的DOM(使用jquery)中有一個自動完成文本框。我有場景,我需要在單擊按鈕時在對話框中顯示此自動完成文本框。在對話框視圖中僅執行自動填充的內容,然後在關閉對話框時將自動填充文本框設置回DOM。這裏的樣本:兩次使用jquery detach()兩次不能按預期工作

$("#autocom-div button").click(function(){ 
    $("#autocom-div #autocomplete").detach().dialog({ 
     close: function(){ 
      $(this).removeClass('ui-dialog-content ui-widget-content').removeAttr('style'); 
      $('#autocom-div button').before(this); 
     } 
    }); 
}); 

的jsfiddle鏈接相同:

http://jsfiddle.net/s24101984/EBduF/350/

問題:當我按一下按鈕第二次

回答

1

的問題不在於detach(),這是相當有dialog() 。在創建另一個對話框之前,您必須銷燬該對話框的現有實例。因爲銷燬方法也將消除div被託管則需要先克隆它是這樣的:當我打開它第二次

$("#autocom-div button").click(function() 
{ 
    var parent = $("#autocom-div"), 
     elm = $("#autocomplete"), 
     clone = $("#autocomplete").clone(); 

    $("#autocomplete").detach().dialog({ 
     close: function(){ 
      parent.prepend(clone); 
      $(this).dialog('destroy').remove(); 
     } 
    }); 

}); 

jsfiddle

+0

的自動完成插件不工作。請讓我知道如果我錯過了什麼。 – 2013-04-11 07:39:50

+0

like'dialog()'你需要銷燬和重新分配'autocomplete()',看到更新後的演示。 – razzak 2013-04-11 10:42:36

相關問題