`
boss5518831534
  • 浏览: 228337 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JQuery 对控件的事件操作

阅读更多
JQuery是非常棒的js类库,有丰富的UI库和插件,不过我钟爱他的是他的选择器,感觉其他功能有时跟后台人员距离很远,所以一般我也只使用一下他的选择器。

今天突然对他的事件产生了兴趣,先前也碰到过,也没整理,今天有空就弄一下咯。

对于控件的事件,jQuery已经提供了丰富的方法,包括绑定、一次绑定、触发等,阿拉今早看看叫一哪能用额伐,大虾路古就可以了。

jQuery的绑定事件非常方便,有bind、live、one还有它帮你把一些常用的事件给单独了出来,比如控件的onclick事件,我们绑定onclick事件的时候只需要

$("#testButton").click(function() {
    alert("I'm Test Button");
});
就这样我们在testButton这个按钮上绑定了onclick事件,执行alert语句。我们也可以使用
$("#testButton").click();
来触发这个onclick事件,一切都非常ok啦。以上有点sb了,接下来看看取消事件。jQuery有unbind的方法,专门来取消绑定的,也就是取消事件,按照上面的例子的话,应该使用:
$("#testButton").unbind("click");
恩,看上去非常好,如果你的click有2个事件的话,你还可以使用unbind("click", fnName)来删除特定函数的绑定。 为什么有这个取消特定函数的方法呢,我们来看下例子,我们会发现,javascript的事件,跟C#的事件如出一辙,事件的绑定是叠加(+=) 而不是覆盖。
    var Eat = function() {
        alert("我要吃饭");
    }

    var PayMoney = function() {
        alert("先付钱");
    }

    jQuery(document).ready(function() {
        $("#testButton").click(Eat);
        $("#testButton").bind("click", PayMoney);
    });
通过上面的例子,我们发现会先弹出:“我要吃饭”紧接着会弹出“先付钱”,说明它的绑定是通过onclick+=fn进行的。我们修改下ready的方法:
        jQuery(document).ready(function() {
            $("#testButton").click(Eat);
            $("#testButton").unbind();
            $("#testButton").bind("click", PayMoney);
        });
又SB了,呵呵,这次点击按钮的话,只会执行PayMoney,不会执行Eat,那如果把unbind()放在bind后面的话,这样这个按钮就不会起作用了。但如果我要去掉绑定的PayMoney方法呢?这时候我们应该这样写:
        jQuery(document).ready(function() {
            $("#testButton").click(Eat);
            $("#testButton").bind("click", PayMoney);
            $("#testButton").unbind("click", PayMoney);
        });
嘿嘿,跟bind其实一个样,不过接下来你将看到一个bug(我不知道算不算),让我们近距离体验一下:
<input id="testButton" type="button" value="Test Button" onclick="Eat();" />
<script type="text/javascript">
        jQuery(document).ready(function() {
            $("#testButton").unbind("click", Eat);
            $("#testButton").unbind();
            $("#testButton").bind("click", PayMoney);
        });
</script>
大家猜猜,会显示什么?吃饭?付钱?答案是Eat -> PayMoney,啊!!!我这里取消了绑定,又删除了特定的绑定,为什么还会执行Eat呢? 其中的原由要看jQuery的类库了,我估计它只删除了通过JQuery绑定的那些事件了,呵呵。 那这时候我们该如何呢?好在jQuery有很多方法,其中一个就是attr,他是对Dom元素的属性进行操作,我们利用attr来消除input上的click事件。
    $("#testButton").attr("onclick", "");
这样就可以把onclick事件清除了,记住,attr上因为是元素的属性,所以这里要写 “onclick” 而不是click,因为click是jQuery封装好的简写方式。 好了,绑定就到这里了,弄个场景,大家也好记得住点: 一日,老应、老赵、老陈出去吃饭,吃饱了,喝足了,准备付钱了,这时候:
<head>

    <script type="text/javascript" src="jquery-1.2.6.min.js"></script>

    <script type="text/javascript">

        var PayMoney = function(name) {
            alert(name + ":今天我请客,我来付钱");
        }

        jQuery(document).ready(function() {
            $("#JeffreyPay").attr("onclick", "");
            $("#JamesPay").attr("onclick", "");

            $("#JeffreyPay").click(function() {
                alert("。。。。这里不能刷卡");
            });

            $("#JeffreyPay").click(function() {
                PayMoney("陈大");
            });
            $("#JamesPay").bind("click", function() {
                alert("。。。。忘记带钱包了");
            });
            $("#JamesPay").bind("click", $("#DlyingPay").attr("onclick"));
        });
    </script>

</head>
<body>
    <input id="JeffreyPay" onclick="PayMoney('赵帅');" type="button" value="老赵付钱" />
    <input id="JamesPay" type="button" onclick="PayMoney('老应');" value="老应付钱" />
    <input id="DlyingPay" type="button" onclick="PayMoney('陈大');" value="老陈付钱" />
</body>

著:该文章是copy原创的 (原创连接:http://www.cnblogs.com/inday/archive/2009/07/17/JQuery-Bind-Event.html)
分享到:
评论

相关推荐

    jQuery flexigrid 表格控件

    传输数据的格式有两种 xml 和 json ,做系统网站上比较用的多, 这个控件也比较好看和实用, 我在网上看到了很多功能但是都很散, 我添加了一些功能,比如可以添加 复选框 , 行按钮 等操作, 对控件有一定的可控性操作, ...

    jQuery 相关控件的事件操作分解

    jQuery的绑定事件非常方便,有bind、live、one还有它帮你把一些常用的事件给单独了出来,比如控件的onclick事件,我们绑定onclick事件的时候只需要 代码如下: $(“#testButton”).click(function() { alert&#40;...

    jQuery AJAX表格控件源码

    jQuery AJAX表格控件(初版)源码 测试版 JQUERY 实现的AJAX表格操作控件 设计上需要改进 初步功能已实现 边个实现了数据库的添加 编辑 删除等基本功能 详细请查看代码

    多功能jQuery日期控件 jeDate.js 支持年月日时分秒的选择

    jeDate是一款大众化的日期控件,她身兼多职,虽不是万能的,但是她却是功能强大多样的美少女,她除了包含 单双面板、区域选择、 多语言、日历固定、有效无效日期、日期时间戳转换、日期加减、限制时分秒、初始化日期...

    基于jquery的日历控件lhgCalendar

    大部分日期控件都具备功能如:带时间显示,自定义格式,自动纠错,操作按钮自定义,支持多种调用模式等,lhgCalendar在这些方面做得更全面,更人性化,并且速度一流。 跨平台兼容特性 兼容:IE6+、Firefox、Chrome、Safari...

    Jquery获得控件值的三种方法总结

    一 Jquery获得服务器控件值的方法由于ASP.NET网页运行后,服务器控件会随机生成客户端id,jquery获取时候不太好操作,google了下,总结有以下3种方法: 服务器控件代码:”txtUserID” runat=”server”&gt;&lt;/asp&gt; 1. ...

    jquery calendar.js日历选择控件带节日日历选择器

    jquery calendar.js日历选择控件带节日日历选择器 jquery calendar.js日历选择控件带节日日历选择器 jquery calendar.js日历选择控件带节日日历选择器

    15款提高表格操作的jQuery插件

    15款提高表格操作的jQuery插件

    jQuery AJAX表格控件(初版)源码

    jQuery AJAX表格控件(初版)源码 测试版 JQUERY 实现的AJAX表格操作控件 设计上需要改进 初步功能已实现 边个实现了数据库的添加 编辑 删除等基本功能 详细请查看代码

    基于jQuery的日历控件源码

    基于jQuery的日历控件源码 操作方式和样式参考Google Calendar Demo中的服务器端采用MS ASP.NET MVC V1,事实上可替换成其他任何一种服务器端技术(包括PHP,ASP,JSP) 本来想直接叫Calendar,可是Google Code中的...

    jQuery Html控件基本操作(日常收集整理)

    主要介绍了jQuery Html控件基本操作(日常收集整理)的相关资料,需要的朋友可以参考下

    jQuery操作基本控件方法实例分析

    本文实例讲述了jQuery操作基本控件方法。分享给大家供大家参考,具体如下: 1. 根据控件的样式class获取控件 复制代码 代码如下:$(“.className”)…… //className代表的就是控件的样式 2. 根据控件的ID获取控件 ...

    jQuery实现CheckBox控件CheckListBox全选功能

    C#.net下通jQuery实现的由CheckBox来控件CheckBoxList的全选操作,通过CheckBox来全选CheckBoxList,当有一个CheckBoxList选中时,CheckBox则被选中,且并且可以取得选中的CheckBox和CheckBoxList的value和text

    jQuery页面操作手册

    个人总结的jQuery页面操作记录,包括jQuery的基本使用方法和对页面表单控件的各种操作。

    jquery下拉select控件操作方法分享(jquery操作select)

    主要介绍了jquery下拉select控件操作方法分享(jquery操作select),需要的朋友可以参考下

    jQuery实现判断控件是否显示的方法

    主要介绍了jQuery实现判断控件是否显示的方法,涉及jQuery针对页面元素属性相关操作技巧,需要的朋友可以参考下

    jQuery的Tree控件事例及API

    jsTree是一个 基于jQuery的Tree控件。支持XML,JSON,Html三种数据源。提供创建,重命名,移动,删除,拖"放节点操作。可以自己自定义创建,删 除,嵌套,重命名,选择节点的规则。在这些操作上可以添加多种监听事件...

    JQuery zTree v3.3

    jquery 树控件 万能树 拖拽 添 删 改 大数据操作 ajax操作 代码清晰便于重构 修改

Global site tag (gtag.js) - Google Analytics