【问题标题】:Applying jQuery UI CSS classes to elements manually causes the JS to misbehave手动将 jQuery UI CSS 类应用于元素会导致 JS 行为不端
【发布时间】:2011-04-12 09:13:35
【问题描述】:

您好,

所以我尝试手动将 jQuery CSS 类应用到我的元素,这样用户就没有“flash”,因为我的 javascript 样式化了所有内容,因此没有启用 JavaScript 的用户可以看到简洁。

所以这里是一个按钮的例子。我已经应用了.button() 调用将添加的所有类,并以相同的方式构建了我的标记。

<button id="my-button" type="submit" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary">
    <span class="ui-button-icon-primary ui-icon ui-icon-plus"></span>
    <span class="ui-button-text">Doit!</span>
</button>

这本身看起来很棒!当然它没有悬停样式等,但这是意料之中的。

然后我应用我的 Javascript:

$('#my-button').button();

jQuery UI 似乎不知道现有的类/标记,它把我可爱的按钮变成了这个:

<button id="my-button" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" type="submit" role="button" aria-disabled="false">
    <span class="ui-button-icon-primary ui-icon ui-icon-plus"></span>
    <span class="ui-button-text">
        <span class="ui-button-icon-primary ui-icon ui-icon-plus"></span>
        <span class="ui-button-text">Doit!</span>
    </span>
</button>

最后是我的问题:

如何手动/不使用 javascript 应用 CSS 类,但仍使用 javascript 函数添加交互功能?

编辑:好的,所以.button() 生成的标记并不完全是我在那里发布的^^ 那是一个带有图标参数的.button( 调用。问题是一样的,通过一个简单的 .button() 调用它只是将所有内容包装在 &lt;span class="ui-button-text

【问题讨论】:

    标签: jquery css jquery-ui class


    【解决方案1】:

    您可以先清除按钮,然后运行 ​​.button() 以重新创建您的 ui 按钮

    $('#my-button').html(function(){return $(this).text();}).button({ icons: {primary:'ui-icon-plus'}});
    

    http://jsfiddle.net/MHaxd/1/

    【讨论】:

    • 现在看来真的很明显:/ 谢谢!
    • 这似乎也需要很多工作。当然应该更新 jQuery UI 来处理这种情况,而不是添加额外的 &lt;span&gt; 元素?无论如何,这都是我所期望的。
    【解决方案2】:

    我相信这是一个已知问题 (Button: support pre-rendered markup),正如你我所预料的那样,额外的 &lt;span&gt; 元素希望有一天不会真正生成 :)

    【讨论】:

    • 虽然,那个bug是一年前打开的……去投票吧!目前是 0 票(在我投票之前是 -1,这有点令人失望)。
    • @elwyn 也感谢您确认不仅仅是我 :D 和投票 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 2017-10-04
    • 1970-01-01
    • 2014-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多