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 相关文章推荐
动态加载js的几种方法
Oct 23 Javascript
JavaScript 学习笔记(七)字符串的连接
Dec 31 Javascript
基于jQuery的可用于选项卡及幻灯的切换插件
Mar 28 Javascript
js多级树形弹出一个小窗口层(非常好用)实例代码
Mar 19 Javascript
js操作label给label赋值及取label的值示例
Nov 07 Javascript
浅谈JavaScript实现面向对象中的类
Dec 09 Javascript
jQuery中Form相关知识汇总
Jan 06 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
Oct 09 Javascript
vue 自定义 select内置组件
Apr 10 Javascript
web页面和微信小程序页面实现瀑布流效果
Sep 26 Javascript
js实现移动端轮播图
Dec 21 Javascript
JS错误处理与调试操作实例分析
Apr 13 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
收集的PHP中与数组相关的函数
2007/03/22 PHP
Php注入点构造代码
2008/06/14 PHP
ThinkPHP采用模块和操作分析
2011/04/18 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
2015/05/13 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
JsEasy简介 JsEasy是什么?与下载
2007/03/07 Javascript
javascript在一段文字中的光标处插入其他文字
2007/08/26 Javascript
ExtJS Store的数据访问与更新问题
2010/04/28 Javascript
js实现iframe跨页面调用函数的方法
2014/12/13 Javascript
JQuery跳出each循环的方法
2015/04/16 Javascript
老生常谈JavaScript数组的用法
2016/06/10 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
JS仿Base.js实现的继承示例
2017/04/07 Javascript
微信小程序 wx:for的使用实例详解
2017/04/27 Javascript
详解AngularJS脏检查机制及$timeout的妙用
2017/06/19 Javascript
详解微信小程序实现WebSocket心跳重连
2018/07/31 Javascript
关于AngularJS中ng-repeat不更新视图的解决方法
2018/09/30 Javascript
如何在vue项目中嵌入jsp页面的方法(2种)
2020/02/06 Javascript
[40:50]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第四场
2014/05/24 DOTA
python3实现TCP协议的简单服务器和客户端案例(分享)
2017/06/14 Python
python自动重试第三方包retrying模块的方法
2018/04/24 Python
基于Python3.6+splinter实现自动抢火车票
2018/09/25 Python
python 实现数字字符串左侧补零的方法
2018/12/04 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
2019/11/29 Python
Python按照list dict key进行排序过程解析
2020/04/04 Python
Python super()函数使用及多重继承
2020/05/06 Python
使用SQLAlchemy操作数据库表过程解析
2020/06/10 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
波兰最大的度假胜地和城市公寓租赁运营商:Sun & Snow
2018/10/18 全球购物
vue实现倒计时功能
2021/03/24 Vue.js
公司周年庆典邀请函
2014/01/12 职场文书
党员创先争优活动总结
2014/05/04 职场文书
先进个人事迹材料
2014/12/29 职场文书
会计工作自我鉴定范文
2019/06/21 职场文书