Javascript 为什么我必须调用$(“button”).button();要启用jQueryUI主题?

Javascript 为什么我必须调用$(“button”).button();要启用jQueryUI主题?,javascript,jquery,html,css,jquery-ui-theme,Javascript,Jquery,Html,Css,Jquery Ui Theme,我对JQuery和jQueryUI主题仍然是新手。我已经设法开发了自己的主题,并将其应用到一个带有按钮的简单测试页面上。我阅读了文档,但找不到它说我应该显式调用$(“:button”).button()的位置以应用它 如果我不这样做,主题就不会被应用。那么为什么我必须明确地这样做呢?或者,如果这是我期望的,是否有人有一个通用的脚本自动应用于所有项目的主题?谢谢 编辑 在阅读答案和评论时,一些人暗示UI主题的应用是自动的,但另一些人说应该手动应用。交付的测试HTML页面上的测试似乎表明必须手动应用

我对JQuery和jQueryUI主题仍然是新手。我已经设法开发了自己的主题,并将其应用到一个带有按钮的简单测试页面上。我阅读了文档,但找不到它说我应该显式调用
$(“:button”).button()的位置以应用它

如果我不这样做,主题就不会被应用。那么为什么我必须明确地这样做呢?或者,如果这是我期望的,是否有人有一个通用的脚本自动应用于所有项目的主题?谢谢

编辑


在阅读答案和评论时,一些人暗示UI主题的应用是自动的,但另一些人说应该手动应用。交付的测试HTML页面上的测试似乎表明必须手动应用主题

必须调用按钮函数的原因是,jQuery UI可以将其所有专用类和属性添加到按钮中

如果您从以下按钮开始:

<button type="button">A button element</button>
按钮元素
将替换为以下内容:

<button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" aria-disabled="false"><span class="ui-button-text">A button element</span></button>
按钮元素

如果您查看,按钮样式也可以应用于其他元素,例如复选框、单选按钮和锚定。jQueryUI认为,让您指定哪些元素应该应用该特定样式比尝试猜测更好,特别是因为指定元素通常是一行代码:
$(foo).button()

您必须明确指定此选项的原因是,并非所有使用该库的人都希望将其所有按钮样式设置为jQuery UI按钮。通常认为最好将“机制”(jQueryUI提供的)与“策略”(由您决定)分开;而且jQuery非常擅长以简洁的方式定义策略。

必须选择所有按钮(c.f.jQuery文档)“$(':button')与$('input[type=button],button')”等价:按钮用于选择这两种元素类型。这很奇怪,不应该发生。也许您正在以错误的顺序将脚本加载到页面上,或者没有等到DOM加载运行script@Thilo我通过在下载主题时交付的HTML测试页面中添加一个按钮来执行测试。它不会自动获取布局,因此确认我似乎必须自己应用它。这是正确的。也就是说,只要您知道所有预期的类,就可以将它们放在自己的中,而无需函数调用。但我不会。jQuery UI的要点是它可以为您完成所有的“widgetizing”。@Greg您所说的“它为您完成它”是什么意思?正如在对该问题的评论中提到的,似乎您必须手动执行此操作。还是我遗漏了什么?糟糕的措辞,仅此而已。您正在“手动”调用.button(),但并不是“手动”添加包含jQuery UI按钮组件的每个类。;-)