防止jQuery Mobile向元素添加自定义类

时间:2017-01-20 15:52:18

标签: javascript jquery jquery-mobile

使用jQuery Mobile,如何防止它添加自己的元素和类?例如,我的原始HTML是:

<div id="main-table">
    <ul>
        <li>
            <form method="get">
                <input name="SearchOrders" class="myInput" type="text" value="" />
                <input name="SendSearch" class="redButton searchButton" type="submit" value="" />
            </form>
        </li>
    </ul>
</div>

但jQuery Mobile增加了一些div和类:

<div id="main-table">
    <ul class="my-account myTitle">
        <li>
            <form method="get">
                <div class="ui-input-text ui-body-inherit ui-corner-all ui-shadow-inset">
                    <input name="SearchOrders" class="myInput" type="text" value="">
                </div>
                <div class="ui-btn ui-input-btn ui-corner-all ui-shadow">
                    <input name="SendSearch" class="redButton searchButton" type="submit" value="">
                </div>
            </form>
        </li>
    </ul>
</div>

如果我使用data-role =&#34; none&#34;在每个元素上,jQuery Mobile都不会修改我的标记,但我正在寻找一个我不需要修改HTML的解决方案。

我试过了:

$(document).on('mobileinit',function(){
    $.mobile.keepNative = 'input';
}); 

但这不起作用。

我也尝试过:

data-enhance="false"

在父元素上,但也不起作用。

1 个答案:

答案 0 :(得分:0)

来自jQueryMobile文档:Configuring Defaults

  

mobileinit事件

     

当jQuery Mobile启动时,它会触发一个mobileinit事件   文件对象。要覆盖默认设置,请绑定到mobileinit。

这里的关键点是:配置覆盖应该在jQuery Mobile启动时可用,因此您应该在加载jQuery Mobile文件之前将配置脚本放在头部。

&#13;
&#13;
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
  <link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
  <script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
  <script>
    $(document).on("mobileinit", function() {
      $.mobile.keepNative = "input";
    });
  </script>
  <script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>
<body>
  <div data-role="page" id="page-1">
    <div data-role="header" data-position="fixed">
      <h1>Native Inputs</h1>
    </div>
    <div role="main" class="ui-content">
      <div id="main-table">
        <ul>
          <li>
            <form method="get">
              <input name="SearchOrders" class="myInput" type="text" value="" />
              <input name="SendSearch" class="redButton searchButton" type="submit" value="" />
            </form>
          </li>
        </ul>
      </div>
    </div>
  </div>
</body>
</html>
&#13;
&#13;
&#13;