Javascript 如何删除jQuery手机样式?

Javascript 如何删除jQuery手机样式?,javascript,html,css,jquery-mobile,Javascript,Html,Css,Jquery Mobile,我选择jquerymobile而不是其他框架是因为它的动画功能和动态页面支持 然而,我在造型方面遇到了麻烦。我希望保留基本页面样式,以便执行页面转换。但是我还需要完全定制标题、列表视图、按钮、搜索框的外观。。。仅仅处理颜色是不够的。我需要处理尺寸、位置、边距、填充等 因此,为了用CSS覆盖jQuery Mobile添加的额外div和类,我很难处理它们。但它是如此耗时,而且从头重写css会快得多 有没有办法加载最小的jQuery移动css文件 或者我应该考虑另一个移动框架?我需要处理页面转换、aj

我选择jquerymobile而不是其他框架是因为它的动画功能和动态页面支持

然而,我在造型方面遇到了麻烦。我希望保留基本页面样式,以便执行页面转换。但是我还需要完全定制标题、列表视图、按钮、搜索框的外观。。。仅仅处理颜色是不够的。我需要处理尺寸、位置、边距、填充等

因此,为了用CSS覆盖jQuery Mobile添加的额外div和类,我很难处理它们。但它是如此耗时,而且从头重写css会快得多

有没有办法加载最小的jQuery移动css文件

或者我应该考虑另一个移动框架?我需要处理页面转换、ajax调用、Cordova兼容性,当然还有完全可定制的html/css…

标记增强预防方法: 这可以通过几种方式实现,有时您需要将它们结合起来以实现所需的结果

  • 方法1:

    它可以通过添加以下属性来完成此操作:

    data-enhance="false"
    
    到页眉、内容、页脚容器

    这也需要在应用程序加载阶段打开:

    $(document).on("mobileinit", function () {
        $.mobile.ignoreContentEnabled=true;
    });
    
    在初始化jquery-mobile.js之前初始化它(参见下面的示例)。

    有关这方面的更多信息,请参见:

    例如:

    要重新创建页面,请使用以下命令:

    $('#index').live('pagebeforeshow', function (event) {
        $.mobile.ignoreContentEnabled = false;
        $(this).attr('data-enhance','true');
        $(this).trigger("pagecreate")
    });
    
  • 方法2:

    第二个选项是使用此行手动执行:

    data-role="none"
    
    例如:

  • 方法3:

    可以阻止某些HTML元素进行标记增强:

     $(document).bind('mobileinit',function(){
          $.mobile.keepNative = "select,input"; /* jQuery Mobile 1.4 and higher */
          //$.mobile.page.prototype.options.keepNative = "select, input"; /* jQuery Mobile 1.4 and lower */
     });    
    
    例如:

    在初始化jquery-mobile.js之前再次初始化它(参见下面的示例)。


在我的另一个教程中了解更多信息:

从jQuery Mobile 1.4.0开始,增强的
数据属性被添加到大多数组件中。将此属性设置为true将导致jQuery mobile忽略组件的样式增强,因此您必须自己设置元素的样式

有关这方面的更多信息,请参见jQuery Mobile 1.4.0发行说明
我不是专家,但我很乐意与您分享一种奇怪的方法。实际上,这是一项非常繁忙的任务:您需要的是通过删除属性值一行一行地编辑jqmcss,只需将它们保留为空白即可;您只需查看CSS文件中所需的部分即可调整或删除值

不要忘了在HTML页面的头部附加您自己的CSS链接rel


我希望它能为您工作

…或者只使用官方的,专门为允许设计自定义主题而构建的,同时维护所有jQuery移动功能

你不必一直与黑客和覆盖作斗争,你会得到一个更轻的CSS

双赢


编辑:也回答了

老实说,我很失望jQuery mobile没有为我们提供一个相对风格自由的入门工具包,仅用于您所说的:Ajax、transitions、cordova

覆盖生成的css类是绝对疯狂的,但是我做了一些臭鼬的工作,我成功地将未压缩的css文件大小从令人惊叹的233kb减少到仅27kb,同时保留css的重要方面,如转换、单页查看等。这样一来,您开始时几乎就像开始使用空css文件一样


如果有任何需求,也许我会将文件上传到Github上。我希望做更多的测试,看看我没有留下任何重要的东西。

我也有同样的问题,从头开始不是一个有效的方法,但对我来说是最好的。然而,为了按时完成我的项目,我实现了jquerycssmobile并删除了其中的大部分+1对于您的问题,如果有人有答案,理想的方法是从jquery CSS文件中删除您不想要的样式。然后创建一个具有相同类名的新文件,并根据需要自定义它们。谢谢您的回答。事实上,我从“没有主题的结构”css开始。我将按照你的建议删除无用的css。但是,最好不要向标记中添加额外的(无用的)html。有没有办法配置jQuery,使其不添加额外的样式标记?非常感谢您的回答。要理解每种方法之间的主要区别(利弊)并不容易。如果你愿意,我可以通过电子邮件向你发送文件,你可以将其发送给我,但我必须承认,我一直在使用爱奥尼亚。。在jquerymobile花了多长时间来完成几乎所有事情之后,我的头撞到了墙上!相反,爱奥尼亚一开始就有很棒的现代css,当你把它和人行横道结合在一起时,你会觉得它真的像一个本地应用。从长远来看,我建议使用离子型这是迄今为止最简单的,我不明白为什么接受答案的过于复杂的方式拥有最高的支持率@LaurenceCope您是否尝试过将jQuery移动页面与jQuery页面混合,并在它们之间导航?jQuery mobile喜欢感染整个域。@Yako这就是答案!这听起来很有希望,但不幸的是,这似乎不适用于jQueryMobile 1.4中的selects。5@Vincent这听起来可能很傻,但您是否尝试过在结尾不使用“d”,例如
data enhance=“false”
?据我所知,他们在中的数据引用中仍然可以使用,但无论出于何种原因,他们似乎被删除了“d”。您可能还需要在初始化之前配置一些标志,就像链接状态一样。奇怪的是,他们会以这种方式对其进行重命名,但是,如果默认值为true,并且将其设置为false可以防止jQuery增强元素,那么没有d可能会更有意义。然而,他们似乎在以另一种方式做这件事,这对我来说毫无意义。唉。不管怎样,我