2011-02-16 71 views
2

此選擇器引用於http://jqueryui.com/demos/dialog/#modal-confirmation(源代碼)。這個選擇器是什麼選擇「#dialog:ui-dialog」?

$("#dialog:ui-dialog").dialog("destroy"); 

#dialog是好的,請問:ui-dialog得到解釋,我沒有在文檔找到它的任何地方。

任何人都可以點亮一下嗎?

+0

正如在選擇器之前的註釋中所解釋的:「解決演示系統中的缺陷的一種解決方法([http://dev.jqueryui.com/ticket/4375](http://dev.jqueryui.com/票/ 4375)),不理!「 – Nekresh 2011-02-16 11:11:49

+1

我可以看到。 jQuery選擇器沒有定義任何類似於:ui-dialog,所以我的問題是如何添加這個新的選擇器,很可能在jquery-ui API中。但我不知道在哪裏?如果您嘗試使用#dialog:foobar,則要解釋一點,它將無法正常工作? – Ravindra 2011-02-17 05:33:26

回答

0

右上面那行代碼的註釋上寫着:

// a workaround for a flaw in the demo system (http://dev.jqueryui.com/ticket/4375), ignore! 

因此,它可能是最好還是別去碰它。

0

我相信這只是指一個元素ID爲對話框:UI的對話框,它沒有任何語義含義

2

jquery.ui.widget.js定義自定義選擇,每jQuery的UI部件:

// create selector for plugin 
$.expr[ ":" ][ fullName ] = function(elem) { 
    return !!$.data(elem, name); 
}; 

其遍歷所有元素,並返回那些定義的數據(在這種情況下對話框)對象。

嘗試:

  1. 選擇對話(S)(返回的jQuery)

    $(':ui-dialog'); 
    
  2. 獲取對話框對象(返回Object)

    $(":ui-dialog").eq(0).data('dialog'); 
    

你糾正聲明:

$(":ui-dialog").dialog("destroy"); 

選擇並解除所有對話框。