jquery 关于event.target使用的几点说明介绍


Posted in Javascript onApril 26, 2013

event.target
说明:引发事件的DOM元素。

this和event.target的区别
js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,它永远是直接接受事件的目标DOM元素;

this和event.target的相同点
this和event.target都是dom对象,如果要使用jquey中的方法可以将他们转换为jquery对象:$(this)和$(event.target);

这使我想起了以前写的一个例子:

    //del event
    $(".del").bind("click",function(event){
        var _tmpQuery=$(this);//为什么要加上这一句?
        var id=$("input[name='id']",$(this).parents("form:first")).attr("value");
        art.dialog.confirm('你确认删除该日志吗?',function(){
            $.post("myRun/managerlog_del.php",{id:id},function(tips){
                if(tips=='ok'){
                    art.dialog.tips('成功删除');
                    $(_tmpQuery.parents('tr:first')).hide();//如果不加第一句,这里用$($(this).parents('tr:first')).hide();则不会隐藏
                    //因为这里的this,并不是当前的class="del"这个DOM对象了。而是jQuery的AJAX配置对象ajaxSettings。测试:alert(this.url);
                }else{
                    art.dialog.tips(tips,5);
                }
            });
            return true;
        });
    });

那么现在我可以将上面代码通过$(event.target)这个方式来实现隐藏tr,而不用通过$(_tmpQuery.parents('tr:first')).hide();这样的方式,具体代码如下:
$(".del").bind("click",function(event){
    //var _tmpQuery=$(this);这行代码可以删除
    var id=$("input[name='id']",$(this).parents("form:first")).attr("value");
    art.dialog.confirm('你确认删除该日志吗?',function(){
        $.post("myRun/managerlog_del.php",{id:id},function(tips){
            if(tips=='ok'){
                art.dialog.tips('成功删除');
                $(event.target).parents('tr:first').hide();
            }else{
                art.dialog.tips(tips,5);
            }
        });
        return true;
    });
});

event.target和$(event.target)的使用
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script language="JavaScript" type="text/JavaScript" src="http://www.w3school.com.cn/jquery/jquery.js"></script>
<script type="text/javascript">
$(function(){
    $("li").live("click",function(event){
        $("#temp").html("clicked: " + event.target.nodeName);
        $(event.target).css("color","#FF3300");
    })
});
</script>
</head>

<body>
    <div id="temp"></div>
    <ul class="JQ-content-box" style="padding:20px; background:#FFFFFF">
        <li>第一行
            <ul>
                <li>这是公告标题1</li>
                <li>这是公告标题2</li>
                <li>这是公告标题3</li>
                <li>这是公告标题4</li>
            </ul>
        </li>
    </ul>
</body>
</html>

上面的例子如果改成使用this
<script type="text/javascript">
$(function(){
    $("li").live("click",function(event){
        $("#temp").html("clicked: " + event.target.nodeName);
        $(this).css("color","#FF3300");
        event.stopPropagation();
    })
});
</script>

在看一个例子
<!DOCTYPE html>
<html>
<head>
<script language="JavaScript" type="text/JavaScript" src="http://www.w3school.com.cn/jquery/jquery.js"></script>
<script>
$(document).ready(function(){
    function handler(event) {
      var $target = $(event.target);
      if( $target.is("li") ) {
        $target.children().toggle();
      }
    }
    $("ul").click(handler).find("ul").hide();//从这里也看出find只在后代中遍历,不包括自己。
});
</script>
</head>
<body>
<ul>
  <li>item 1
    <ul>
      <li>sub item 1-a</li>
      <li>sub item 1-b</li>
    </ul>
  </li>
  <li>item 2
    <ul>
      <li>sub item 2-a</li>
      <li>sub item 2-b</li>
    </ul>
  </li>
</ul>
</body>
</html>

toggle()不带参数的作用:

toggle有两种作用:
toggle()
切换元素的可见状态。
如果元素是可见的,切换为隐藏的;如果元素是隐藏的,切换为可见的。

toggle(fn,fn)
每次点击时切换要调用的函数。
如果点击了一个匹配的元素,则触发指定的第一个函数,当再次点击同一元素时,则触发指定的第二个函数。随后的每次点击都重复对这两个函数的轮番调用。
可以使用unbind("click")来删除。

Javascript 相关文章推荐
基于jQuery的Spin Button自定义文本框数值自增或自减
Jul 17 Javascript
『jQuery』.html(),.text()和.val()的概述及使用
Apr 22 Javascript
JS 去除Array中的null值示例代码
Nov 20 Javascript
js简单实现根据身份证号码识别性别年龄生日
Nov 29 Javascript
JS实现控制表格行文本对齐的方法
Mar 30 Javascript
JS实现新浪微博效果带遮罩层的弹出框代码
Oct 12 Javascript
js 自带的sort() 方法全面了解
Aug 16 Javascript
vue实现ajax滚动下拉加载,同时具有loading效果(推荐)
Jan 11 Javascript
Node.js  事件循环详解及实例
Aug 06 Javascript
webpack4.0 入门实践教程
Oct 08 Javascript
js实现磁性吸附的示例
Oct 26 Javascript
JavaScript高级程序设计之变量与作用域
Nov 17 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
Apr 26 #Javascript
jQuery 遍历-nextUntil()方法以及prevUntil()方法的使用介绍
Apr 26 #Javascript
基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
Apr 26 #Javascript
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
Apr 26 #Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
Apr 26 #Javascript
关于jquery.validate1.9.0前台验证的使用介绍
Apr 26 #Javascript
jQuery.Validate验证库的使用介绍
Apr 26 #Javascript
You might like
隐藏X-Space个人空间下方版权方法隐藏X-Space个人空间标题隐藏X-Space个人空间管理版权方法
2007/02/22 PHP
Session服务器配置指南与使用经验的深入解析
2013/06/17 PHP
解析左右值无限分类的实现算法
2013/06/20 PHP
关于PHPDocument 代码注释规范的总结
2013/06/25 PHP
php类的自动加载操作实例详解
2016/09/28 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
2017/06/29 PHP
解决Laravel自定义类引入和命名空间的问题
2019/10/15 PHP
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
js 可拖动列表实现代码
2011/12/13 Javascript
window.location.href = window.location.href 跳转无反应 a超链接onclick事件写法
2013/08/21 Javascript
用jQuery实现的智能隐藏、滑动效果的返回顶部代码
2014/03/18 Javascript
使用Plupload实现直接上传附件至七牛云存储
2014/12/26 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
2015/08/17 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
2016/01/27 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
2017/03/01 Javascript
Vue中的ref作用详解(实现DOM的联动操作)
2017/08/21 Javascript
javascript浏览器用户代理检测脚本实现方法
2017/10/27 Javascript
详解React中setState回调函数
2018/06/14 Javascript
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
收藏整理的一些Python常用方法和技巧
2015/05/18 Python
老生常谈进程线程协程那些事儿
2017/07/24 Python
一文总结学习Python的14张思维导图
2017/10/17 Python
详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)
2016/12/15 HTML / CSS
h5封装下拉刷新
2020/08/25 HTML / CSS
英国最专业的健身器材供应商之一:Best Gym Equipment
2017/12/22 全球购物
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
彪马荷兰官网:PUMA荷兰
2019/05/08 全球购物
销售自荐信
2013/10/22 职场文书
专业实习自我鉴定
2013/10/29 职场文书
中文教师求职信
2014/02/22 职场文书
合伙协议书
2014/04/23 职场文书
地质工程专业毕业生求职信
2014/08/08 职场文书
2015年驾驶员工作总结
2015/04/29 职场文书
红色革命电影观后感
2015/06/18 职场文书
大学生安全教育心得体会
2016/01/15 职场文书