2012-07-10 201 views
0

我有以下的html代码我想改变onclick按钮的颜色。我使用$("#submitButton").css("background-color","yellow");但点击时不会改变。点击按钮颜色没有改变

这里是我的html代码

<!DOCTYPE html> 
<html> 
<head> 

<link rel="stylesheet" href="jquery.mobile/jquery.mobile-1.1.0.css" /> 
<link rel="stylesheet" href="docs/assets/css/jqm-docs.css" /> 
<link rel="stylesheet" href="docsdemos-style-override.css" /> 


<script type="text/javascript" charset="utf-8" src="cordova-1.9.0.js"></script> 

<script type="text/javascript" src="jquery.mobile/jquery-1.7.2.min"></script> 
<script type="text/javascript" charset="utf-8" src="js/main.js"></script> 

<script type="text/javascript"> 

      $(document).bind("mobileinit", function() 
      { 
       console.log("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"); 
       $.mobile.pushStateEnabled = false; 
       $.mobile.defaultTransition = 'slideup'; 
      }); 

     </script> 

<script type="text/javascript" src="jquery.mobile/jquery.mobile-1.1.0.js"></script> 

</head> 
     <body> 



     <div data-role="page"> 

     <div data-role="header"> 
     <h1>Form Page</h1> 
     </div><!-- /header --> 

      <div data-role="content"> 
      <form id="loginForm"> 

     <!-- Wrap Inputs in fieldcontain which will sort out borders and padding, can cause layout to break --> 
     <div data-role="fieldcontain"> 
     <label for="firstName"> Username: </label> 
     <input type="text" name="username" value="" id="username" /> <!-- Use id and name values --> 
     </div> 

     <div data-role="fieldcontain"> 
     <label for="password"> Password: </label> 
     <input type="password" name="password" value="" id="password" /> <!-- Use id and name values --> 
     </div> 

     <div data-role="fieldcontain"> 
     <label for="dob"> Date of birth: </label> 
     <input type="password" name="dob" value="" id="dob" /> <!-- Use id and name values --> 
     </div> 


     <div data-role="button"> 
     <input type="submit" data-role="button" value="Login" id="submitButton"> 
     </div> 

     </form> 
     </div> 

     <div data-role="footer"> 
     <h4>Footer content</h4> 
     </div><!-- /footer --> 

     </div> 



     <script type="text/javascript"> 

      $(function() 
      { 
       $('#submitButton').on('click', function(e) 
       { 
        e.preventDefault(); 
        $(this).css("background-color","yellow"); 
        handleLogin(); 
       }); 
      }); 


     </script> 



     </body> 
</html> 

在提交按钮,它调用handleLogin()函数,但颜色不改变的点击。任何帮助将不胜感激。

+0

是否包含jQuery UI的?.. – maxhud 2012-07-10 04:49:05

+0

我想这是因为你的形式做了'后back'。如果您正在处理来自JS的登录,请在按钮点击代码的末尾包含一个'return false;'行。 – 2012-07-10 04:50:27

+0

我已经整理好了你的代码,但是我没有在html中看到jQuery的任何链接。 – 2012-07-10 04:53:18

回答

0

您正在使用提交按钮。这就是为什么点击提交按钮它可能会刷新页面由于表单提交。您可以使用表单onSubmit事件而不是按钮单击。而且如果你想看到背景颜色比使用“return false;”在你的函数中,否则它会再次提交表单。

1
$(function() { 
    $('#submitButton').on('click', function(e) { 
     e.preventDefault(); 
     $(this).css("background-color","yellow"); 
     handleLogin(); 
    }); 
}); 

防止从刷新页面的形式,把你的代码中的document.ready(在$(function() {..code here..});),并且要记住,jQuery的。

FIDDLE

编辑:

如果发布新的代码是你的整个文件,你没有handleLogin功能(除非它是在一个外部文件)???

在浏览器(F12)中打开控制台并检查是否有任何错误。

+0

handleLogin功能是在不同的文件中,没有包括在同一个HTML文件。 – PPD 2012-07-10 05:09:56

+0

由于您使用jQmobile,删除ready.function并确保提交按钮is'nt复制,当几页中与阿贾克斯的DOM加载可能发生,和指定的ID将不再工作,这是一个常见的JQM问题。 – adeneo 2012-07-10 05:16:38

+0

@ adeneo尝试了很多东西后,只有$(document).ready()的作品。请在我原来的问题上再次改变一些事情。这是我的完整的HTML文件。 – PPD 2012-07-10 05:24:03

1

是否正确包含了jQuery?因为它在我的jsFiddle中适合我。 http://jsfiddle.net/jnaHB/

也许当提交请求时页面刷新?

+1

假设'jQuery'被包含在内是安全的,因为OP已经声明了handleLogin()函数被正确调用。 – 2012-07-10 04:55:12

+0

@jSang:这是真的!这并没有发生在我身上。 – Ivan 2012-07-10 04:55:53

+0

我喜欢你接近问题并在jsfiddle上显示它的方式 – Rab 2012-07-10 04:55:58

0

首先,你还没有包括jQuery的...

其次,你可以在你的事件回调添加return false;,否则页面会刷新,你将看不到任何东西。

0

尝试的document.ready

$代码(文件)。就绪(函数(){ $( '#提交按钮')。点击(函数(){ $( “#提交按钮”)的CSS( “背景色”, “黄色”); handleLogin(); });} )
0

$('#submitButton').click(function()应该内:

$(function() { 
    /*Your function*/ 
}) 

OR

$(document).ready(function() { 
/*Your function*/ 
}) 

OR

$(window).load(function() { 
/*Your function*/ 
}) 
+0

我不能使用第二个选项。我尝试了第一次和第三次,但仍然没有改变颜色。 – PPD 2012-07-10 05:30:24

+0

在哪个浏览器中查看您的页面以此代码? – 2012-07-10 05:37:34