2014-06-10 56 views
1

我創建一個jQuery UI的對話框程序,如沒有所有默認類的jQuery UI對話框按鈕?

$("#dialog").dialog({ 
     autoOpen: false, 
     width: 400, 
     buttons: [ 
      { 
       class: "myButton", 
       text: "Ok", 
       click: function() { 
        $(this).dialog("close"); 
       } 
      }, 
      { 
       text: "Cancel", 
       click: function() { 
        $(this).dialog("close"); 
       } 
      } 
     ] 
    }); 

當創建對話框,但是,按鈕分配有默認類的列表,幷包裹在一個SPAN標籤秒。

<button type="button" class="myButton ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" aria-disabled="false"> 
    <span class="ui-button-text">Ok</span> 
</button> 

我寧願按鈕只是有myClass,期間,如果可能的話沒有span。如在:

<button type="button" class="myButton">Ok</button> 

我該如何做到這一點?

+0

請勿使用jquery ui。做你自己的CSS。編輯:我的意思是不使用jQuery對話框創建按鈕,並添加您自己的按鈕。 –

+0

這就是jQuery UI的工作原理,它在內部使用所有這些類。如果他們干擾你的應用程序,你做錯了什麼。 – Barmar

回答

0

有3層簡單的方法來實現:(只使用下列之一)

1剛創建的按鈕在你的代碼的HTML字符串:

EX:$("#someelem").html("<button type=\"button\" id=\"myid\" class=\"myclass\">Ok</button>");

2下載非壓縮的jQuery UI並更改代碼,以便輸出只是您傳遞的類,並且不會爲html添加跨度。

EX FROM jQuery用戶界面代碼:

var buttonElement = this.buttonElement.removeClass(typeClasses), 
      buttonText = $("<span></span>", this.document[0]) 
       .addClass("ui-button-text") 
       .html(this.options.label) 
       .appendTo(buttonElement.empty()) 
       .text(), 
      icons = this.options.icons, 
      multipleIcons = icons.primary && icons.secondary, 
      buttonClasses = []; 

只是刪除跨度標記,以便buttonText = this.options.label;或類似的東西。

3創建後,使用JavaScript更改類和按鈕html。 EX:$(".myButton").attr("class","myButton").html("Ok");

+0

好方法。我會看到哪個效果最好,謝謝。 – Steve