【问题标题】:jQuery Mobile disable enhancement on certain tags?jQuery Mobile 禁用某些标签的增强功能?
【发布时间】:2013-02-16 20:25:31
【问题描述】:

我不想要 &lt;a&gt; 标记的样式。我找到了像 How to "turn off" jQuery Mobile's styling of <select> drop downs? 这样的线程,但我不想在我拥有的每个锚点上添加 data-enhance=false。我还希望linkBindingEnabled 能够工作(来自http://jquerymobile.com/demos/1.2.0/docs/api/globalconfig.html),因为它不会向&lt;a&gt; 标签添加自定义类。

我可以删除 CSS 文件中的定义,但我更喜欢以编程方式执行此操作。例如,我注释掉了.ui-body-c .ui-link(默认链接),但我在页脚中的链接仍然得到了增强。而且我敢肯定还有其他小案例,我不想让它变得混乱(尽管有时这是唯一的选择)

基本上,有没有办法禁用元素“选择器”的增强功能?而不是手动添加data-enhance=false

【问题讨论】:

    标签: javascript jquery html css jquery-mobile


    【解决方案1】:

    jQuery Mobile 中禁用标记增强的方法很少,但在您的情况下,只有一个单行解决方案:

    $(document).on('pagebeforeshow', '#index', function(){       
       $('a').removeClass('ui-link');
    });
    

    jsFiddle 示例:http://jsfiddle.net/Gajotres/L4KUT/

    其他解决方案可以在我的其他 ARTICLE 中找到,为了透明,这是我的个人博客。或者找到它HERE。搜索名为:预防标记增强方法的章节。

    在那里你会找到如何在选择器级别禁用它的答案,不幸的是它只适用于原生表单元素并且标签不是原生表单元素:

    $(document).bind('mobileinit',function(){
         $.mobile.page.prototype.options.keepNative = "select, input";
    });  
    

    【讨论】:

    • 谢谢 - 这工作。但是,我没有使用页面,(我只有$(document).on('pagebeforeshow', function () {,所以我对它的工作原理有点困惑(因为我没有指定要加载的页面,尽管我认为 JQM 会自动创建一个页面) . 你知道任何链接,我们可以解释,事件被调用的顺序吗?就像我加载新页面时的完整时间线
    • 是的,我有另一个答案/文章:stackoverflow.com/a/14469041/1848600
    【解决方案2】:

    要禁用选择组件的增强,您可以添加 data-role='none',在 jQuery Mobile 1.4.2 上测试。

    http://jsfiddle.net/zLZzA/1/

    【讨论】:

    • 如果页面上有 100 多个组件怎么办?你要把它添加到每一个吗?
    • 正是我想要的,谢谢。也适用于 jQuery Mobile 1.3.2
    猜你喜欢
    • 2015-07-21
    • 1970-01-01
    • 2013-11-13
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多