2011-07-12 18 views
1

如果我們看一下jQuery UI Dialog Modal confirmation demo來源:jQuery UI的模式確認對話框中的取消按鈕的名稱是否有一些魔力?

$("#dialog-confirm").dialog({ 
    resizable: false, 
    height: 140, 
    modal: true, 
    buttons: { 
     "Delete all items": function() { 
      $(this).dialog("close"); 
     }, 
     Cancel: function() { 
      $(this).dialog("close"); 
     } 
    } 
}); 

我們可以看到的Delete all itemsCancel按鈕是如何規定的區別:只有Delete all items按鈕具有其標題中"quotes"。類似的代碼可以複製粘貼並散佈在網上。

這是否有任何意義?我已經看過jquery.ui.dialog.js的(未壓縮)源,我不想認爲有任何有趣的業務,但JS並不完全是我的強項,所以我可能很容易失去一些東西。

回答

1

這裏沒有什麼好笑的,它只是一種用不尋常的名字指定屬性的方法。你也可以這樣做:

$("#dialog-confirm").dialog({ 
resizable: false, 
height: 140, 
modal: true, 
buttons: { 
    "Delete all items": function() { 
     $(this).dialog("close"); 
    }, 
    "Cancel": function() { 
     $(this).dialog("close"); 
    } 
}}); 

而且它會達到同樣的結果。

基本上你傳入的是$(「...」)。dialog只是一組選項作爲一個javascript對象。 jQuery將在下面執行的操作是使用$ .extend(...)將其與其默認值合併。

編輯:刪除狡猾的代碼在JavaScript

1

對象文本必須引用的屬性名稱,如果名稱是不是有效的標識符(或如果他們保留像「類」字)。

除此之外,在你的例子中這兩個屬性沒有區別。它們只是一個對象的屬性。

0

取消是幾乎確保所有對話框UI元素都需要的UI元素。畢竟,雖然您可以用上角的「X」關閉窗口,但這並不是適合的UI模式。

如果引用cancel元素,它的工作原理是相同的。