`
yanfaguanli
  • 浏览: 659690 次
文章分类
社区版块
存档分类
最新评论

JQuery removeClass和移除class的事件绑定

 
阅读更多

今天遇到一个问题, 定义一个样式,且给样式绑定事件,让其只能输入数字. js函数如下:

[javascript]view plaincopy
  1. functionNumbersOnlyBind(){
  2. $(".NumbersOnly").bind({
  3. keypress:function(event){
  4. varkey=event.which;
  5. if(key<48||key>122||key>57){
  6. returnfalse;
  7. }
  8. }
  9. });
  10. }
然后添加两个textbox, 第一个用于输入类型, 初始为NUM, 意思为只能输入数字模式, 第二个用于测试这种模式. 当第一个输入框为NUM时,点击按钮Apply, 则第二个输入框就只能输入数字, 第一个输入框为其他字符串时, 第二个则可以输入任何字符.

在实现时,思路是如果第一个输入框为NUM则给第二个输入框添加.NumbersOnly 样式, 否则移除该样式. 本以为移除样式后,第二个输入框中绑定的事件就可以移除, 但是事实证明是不可以移除的. 除非用unbind解除事件,因为虽然事件是通过.NumberOnly样式绑定的, 但是绑定后,这个事件就和这个输入框绑定上了,而和样式没关系了. 所以事件也不会随着样式的移除而移除..

页面源代码:

  1. <html>
  2. <head>
  3. <scripttype="text/javascript"src="./jquery/jquery-1.7.2.js"></script>
  4. <scripttype="text/javascript">
  5. $(document).ready(function(){
  6. functionNumbersOnlyBind(){
  7. $(".NumbersOnly").bind({
  8. keypress:function(event){
  9. varkey=event.which;
  10. if(key<48||key>122||key>57){
  11. returnfalse;
  12. }
  13. }
  14. });
  15. }
  16. $("#txtType").val("NUM");
  17. $("#btnApply").click(function(event){
  18. vartype=$("#txtType").val();
  19. if(type=="NUM"){
  20. $("#txtTest").addClass("NumbersOnly");
  21. NumbersOnlyBind();
  22. //alert("numberonly");
  23. }
  24. else{
  25. //$("#txtTest").removeClass("NumbersOnly");
  26. $("#txtTest").unbind();
  27. //$(".NumbersOnly").unbind();//移除所有的事件
  28. //alert("Removenumberonly");
  29. }
  30. $("#txtTest").val("");
  31. $("#txtTest").attr("readonly",false);
  32. $("#txtTest").focus();
  33. event.preventDefault();
  34. });
  35. });
  36. </script>
  37. </head>
  38. <body>
  39. <inputname="txtType"type="text"maxlength="10"id="txtType">
  40. <inputname="txtTest"type="text"maxlength="10"id="txtTest">
  41. <inputtype="button"name="btnApply"value="Apply"id="btnApply">
  42. </body>
  43. </html>

今天遇到一个问题, 定义一个样式,且给样式绑定事件,让其只能输入数字. js函数如下:

[javascript]view plaincopy
  1. functionNumbersOnlyBind(){
  2. $(".NumbersOnly").bind({
  3. keypress:function(event){
  4. varkey=event.which;
  5. if(key<48||key>122||key>57){
  6. returnfalse;
  7. }
  8. }
  9. });
  10. }
然后添加两个textbox, 第一个用于输入类型, 初始为NUM, 意思为只能输入数字模式, 第二个用于测试这种模式. 当第一个输入框为NUM时,点击按钮Apply, 则第二个输入框就只能输入数字, 第一个输入框为其他字符串时, 第二个则可以输入任何字符.

在实现时,思路是如果第一个输入框为NUM则给第二个输入框添加.NumbersOnly 样式, 否则移除该样式. 本以为移除样式后,第二个输入框中绑定的事件就可以移除, 但是事实证明是不可以移除的. 除非用unbind解除事件,因为虽然事件是通过.NumberOnly样式绑定的, 但是绑定后,这个事件就和这个输入框绑定上了,而和样式没关系了. 所以事件也不会随着样式的移除而移除..

页面源代码:

  1. <html>
  2. <head>
  3. <scripttype="text/javascript"src="./jquery/jquery-1.7.2.js"></script>
  4. <scripttype="text/javascript">
  5. $(document).ready(function(){
  6. functionNumbersOnlyBind(){
  7. $(".NumbersOnly").bind({
  8. keypress:function(event){
  9. varkey=event.which;
  10. if(key<48||key>122||key>57){
  11. returnfalse;
  12. }
  13. }
  14. });
  15. }
  16. $("#txtType").val("NUM");
  17. $("#btnApply").click(function(event){
  18. vartype=$("#txtType").val();
  19. if(type=="NUM"){
  20. $("#txtTest").addClass("NumbersOnly");
  21. NumbersOnlyBind();
  22. //alert("numberonly");
  23. }
  24. else{
  25. //$("#txtTest").removeClass("NumbersOnly");
  26. $("#txtTest").unbind();
  27. //$(".NumbersOnly").unbind();//移除所有的事件
  28. //alert("Removenumberonly");
  29. }
  30. $("#txtTest").val("");
  31. $("#txtTest").attr("readonly",false);
  32. $("#txtTest").focus();
  33. event.preventDefault();
  34. });
  35. });
  36. </script>
  37. </head>
  38. <body>
  39. <inputname="txtType"type="text"maxlength="10"id="txtType">
  40. <inputname="txtTest"type="text"maxlength="10"id="txtTest">
  41. <inputtype="button"name="btnApply"value="Apply"id="btnApply">
  42. </body>
  43. </html>
分享到:
评论

相关推荐

    a标签跳转到指定div,jquery添加和移除class属性的实现方法

    如果使用a标签跳转到指定的div区域,则只需要把a标签的href属性设置为“#divId”就好了,比如: 跳转到div 这里是被跳转的区域 ...以上就是小编为大家带来的a标签跳转到指定div,jquery添加和移除class属性的

    jQuery使用removeClass方法删除元素指定Class的方法

    主要介绍了jQuery使用removeClass方法删除元素指定Class的方法,可实现针对指定元素样式的批量删除功能,具有一定参考借鉴价值,需要的朋友可以参考下

    jQuery hover事件简单实现同时绑定2个方法

    本文实例讲述了jQuery hover事件简单实现同时绑定2个方法。分享给大家供大家参考,具体如下: 这里将hover事件同时挂2个方法: 1个是悬停的时候执行的,另外一个是离开的时候执行 代码如下: $(document).ready...

    JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例

    主要介绍了JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作,涉及jquery事件响应及页面元素属性动态操作相关使用技巧,需要的朋友可以参考下

    jQuery修改class属性和CSS样式整理

    class属性修改  类属性即class属性,规定类名.  用类选择器规定样式的... 用jQuery进行类名修改既可以用attr()方法修改”class”属性,也可以用addClass(), removeClass(), toggleClass()等方法来完成. addClass()

    jQuery 添加/移除CSS类实现代码

    其中一种办法是改变页面元素的CSS类(Class),这在传统的Javascript里,我们通常是通过处理HTML Dom的classname特性来实现的;而jQuery里提供三种方法来实现这个功能,虽然它们和传统方法... removeClass() – 移除CSS类

    超实用的jQuery代码段

    4.2 使用removeClass()函数动态移除样式类 4.3 使用toggleClass()函数切换页面元素的样式类 4.4 为body增加class类支持 4.5 操作div的显示与隐藏 4.6 如何设定div始终居中显示 4.7 测试浏览器是否支持某些CSS 3...

    jQuery详细教程

    jQuery 事件处理方法是 jQuery 中的核心函数。 事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。术语由事件“触发”(或“激发”)经常会被使用。 通常会把 jQuery 代码放到 部分的事件处理方法中: 实例 ...

    jQuery帮助文档

    removeClass([class]) toggleClass(class [, switch]) HTML代码 html( [val] ) 文本 text( [val] ) 值 val( [val] ) CSS CSS css(name) css(properties) css(name, value) 位置 offset() position() ...

    jQuery动态移除和添加背景图片的方法详解

    本文实例讲述了jQuery动态移除和添加背景图片的方法。分享给大家供大家参考,具体如下: 利用jQuery移除和添加图片 1、样式 &lt;style type=text/css&gt; .changeImage{ background:url(images/right.png) no-...

    jQuery 1.4.1 中文参考

    4.2.3 removeClass([class]) 65 4.2.4 removeClass(function(index, class)) 66 4.2.5 toggleClass(class) 66 4.2.6 toggleClass(class, switch) 67 4.2.7 toggleClass(function(index, class), [switch]) 67 4.3 ...

    JQuery 1.4.1 API Reference 速查手册.chm

    核心 jQuery 核心函数 jQuery(expr, [context]) jQuery(html, [ownerDoc]) jQuery(html, props) jQuery(elements) jQuery() jQuery(callback) jQuery 对象访问 each(callback) ...removeClass([class |

    JQuery新版中文手册

    removeClass([class|fn]) toggleClass(class|fn[,sw]) HTML代码/文本/值 html([val|fn]) text([val|fn]) val([val|fn|arr]) CSS CSS css(name|pro|[,val|fn]) 位置 offset([coordinates]) position() ...

    jquery.removeClass:一个 jQuery 插件,它增加了使用多个参数、逗号分隔字符串和正则表达式删除类的能力

    jQuery 删除类 一个插件,用于将 jQuery 的当前 jQuery.fn.removeClass 替换为一个接受多个参数的插件,包括正则... $(element).removeClass(/className(|[0-9]+)/g, 'anotherClass anotherClass', 'yetAnother');

    jQuery添加/改变/移除CSS类及判断是否已经存在CSS

    ”,言归正传,来看jquery如何添加、移除CSS类: 1. removeClass() – 移除CSS类 $("#target").removeClass("oldClass"); //#target 指的是需要移除CSS类的元素的ID //oldClass 指的是CSS类的名称 2.addClass() – ...

    jQuery 1.3 API 参考文档中文版 html

    * live() - 与bind()不同的是,live()一次只能绑定一个事件。 * [attribute!=value] jQuery 1.3中意义改变 * load 的data参数在jQuery 1.3中也可以接受String + ajax的error回调的第二个参数可能值"timeout", "error...

    jQuery 1.5 API 中文版

    $.removeClass( [class] ), .removeClass( fn(index, class) ) $.toggleClass( class [, switch] ), .toggleClass( fn(index, class) [, switch] ) HTML, text str.html( ) $.html( val ), .html( fn(index, html) )...

    jQuery源码解读之removeClass()方法分析

    removeClass()方法和addClass()差别不大。这就来看看: 代码如下:jQuery.fn.extend({  removeClass: function( value ) {  var classes, elem, cur, clazz, j, finalValue,  i = 0,  len = this.length,  ...

Global site tag (gtag.js) - Google Analytics