2014-06-10 55 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