jQuery Mobile показывает двойную кнопку

Я пробую свое первое приложение с jQM+PhoneGap.

Вот код:

<!DOCTYPE html>
<!--
       Licensed to the Apache Software Foundation (ASF) under one
       or more contributor license agreements.  See the NOTICE file
       distributed with this work for additional information
       regarding copyright ownership.  The ASF licenses this file
       to you under the Apache License, Version 2.0 (the
       "License"); you may not use this file except in compliance
       with the License.  You may obtain a copy of the License at

         http://www.apache.org/licenses/LICENSE-2.0

       Unless required by applicable law or agreed to in writing,
       software distributed under the License is distributed on an
       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
       KIND, either express or implied.  See the License for the
       specific language governing permissions and limitations
       under the License.
-->
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="format-detection" content="telephone=yes" />
    <meta id="viewport" name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
    <link rel="stylesheet" type="text/css" href="css/index.css" />
    <link rel="stylesheet" type="text/css" href="css/jquery.mobile-1.3.1.min.css" />
    <link rel="stylesheet" type="text/css" href="css/jquery.mobile.structure-1.3.1.min.css" />
    <link rel="stylesheet" type="text/css" href="css/jquery.mobile.theme-1.3.1.min.css" />
    <script type="text/javascript" src="js/jquery-2.0.0.min.js"></script>
    <script type="text/javascript" src="js/jquery.mobile-1.3.1.min.js"></script>
    <script type="text/javascript" src="cordova-2.7.0.js"></script>
    <script type="text/javascript" src="js/index.js"></script>
    <script type="text/javascript">
      app.initialize();
    </script>
    <title>Hello World</title>
  </head>
  <body>
    <div class="app" data-role="page">

      <div data-role="content">
        <a onClick="$(this).toggleClass('toggleOffButton');" data-role="button" class="toggleOnButton" id='toggleButton' data-corners="true" data-mini="false" data-theme="a" tabIndex="2"/>
      </div>
      <!-- /content -->

      <div data-role="footer">
        Footer
      </div>

    </div>
    <!-- /page -->
  </body>
</html>

Как видите, это действительно простая страница.

Проблема в том, что он выдает двойную кнопку вместо одной, и это сводит меня с ума.

Замена

<a onClick="$(this).toggleClass('toggleOffButton');" data-role="button" class="toggleOnButton" id='toggleButton' data-corners="true" data-mini="false" data-theme="a" tabIndex="2"/>

со строкой заставляет печатать строку только один раз, как и предполагалось, но кнопка повторяется дважды.

Есть идеи, в чем может быть проблема?

Я читал кое-что о включении дважды jQM-скриптов, но, как вы можете видеть в коде, они не имеют двойной ссылки!

2 ответа

Решение

Я проверил ваш HTML и нашел вашу проблему.

Кнопка jQuery Mobile, созданная из элемента тега, ДОЛЖНА быть закрыта. В основном измените это:

<a onClick="$(this).toggleClass('toggleOffButton');" data-role="button" class="toggleOnButton" id='toggleButton' data-corners="true" data-mini="false" data-theme="a" tabIndex="2"/>

к этому:

<a onClick="$(this).toggleClass('toggleOffButton');" data-role="button" class="toggleOnButton" id='toggleButton' data-corners="true" data-mini="false" data-theme="a" tabIndex="2"/></a>       

Также дайте ему немного текста.

И как Omar сказал вам в комментариях, вам не нужно:

<link rel="stylesheet" type="text/css" href="css/jquery.mobile-1.3.1.min.css" />

если у вас есть эти файлы:

<link rel="stylesheet" type="text/css" href="css/jquery.mobile.structure-1.3.1.min.css" />
<link rel="stylesheet" type="text/css" href="css/jquery.mobile.theme-1.3.1.min.css" />

Мобильный Jquery предоставляет свои собственные кнопки переключения с приятным взглядом.

<label for="flip-mini">Flip switch:</label>
<select name="flip-mini" id="flip-mini" data-role="slider" data-mini="true">
<option value="off">Off</option>
<option value="on">On</option>
</select>

мы также можем изучить здесь для дальнейшего использования. http://jquerymobile.com/demos/1.2.0/docs/forms/switch/

Другие вопросы по тегам