2

我在用jQM + PhoneGap尝试我的第一个应用程序。jQuery Mobile显示加倍按钮

下面的代码:

<!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脚本的内容,但是,正如您在代码中看到的那样,它们没有被双引用!

+0

用这个代替内嵌的JavaScript'$(文件) .on('click','#toggleButton',function(){$(this).toggleClass('toggleOnButton');});' – Omar

+0

仍然是相同的输出 – StepTNT

+0

您是否使用自己的数据主题?虽然我不确定这是否是问题。 – Omar

回答

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" /> 
1

jquery mobile提供了一个很好看的自己的切换按钮。

<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/