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实现鼠标移上弹出提示框、移出消失思路及代码
May 19 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
Nov 12 Javascript
BootStrap Tooltip插件源码解析
Dec 27 Javascript
JS高仿抛物线加入购物车特效实现代码
Feb 20 Javascript
JS实现隔行换色的表格排序
Mar 27 Javascript
JS实现侧边栏鼠标经过弹出框+缓冲效果
Mar 29 Javascript
JS判断数组那点事
Oct 10 Javascript
webpack构建换肤功能的思路详解
Nov 27 Javascript
vue.js简单配置axios的方法详解
Dec 13 Javascript
vue页面切换到滚动页面显示顶部的实例
Mar 13 Javascript
利用js实现前后台传送Json的示例代码
Mar 29 Javascript
node实现分片下载的示例代码
Oct 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
php cache类代码(php数据缓存类)
2010/04/15 PHP
解析php多线程下载远程多个文件
2013/06/25 PHP
thinkphp在模型中自动完成session赋值示例代码
2014/09/09 PHP
php+ajax实现无刷新动态加载数据技术
2015/04/28 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
php可变长参数处理函数详解
2017/02/22 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
JavaScript 加号(+)运算符号
2009/12/06 Javascript
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
javascript浏览器窗口之间传递数据的方法
2015/01/20 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
深入理解bootstrap框架之第二章整体架构
2016/10/09 Javascript
Sequelize中用group by进行分组聚合查询
2016/12/12 Javascript
探究react-native 源码的图片缓存问题
2017/08/24 Javascript
[00:32]10月24、25日 辉夜杯外卡赛附加赛开赛!
2015/10/23 DOTA
[43:18]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
Python中的迭代器漫谈
2015/02/03 Python
基于Django contrib Comments 评论模块(详解)
2017/12/08 Python
python3个性签名设计实现代码
2018/06/19 Python
selenium3+python3环境搭建教程图解
2018/12/07 Python
关于Pycharm无法debug问题的总结
2019/01/19 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
2019/10/01 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
2019/11/26 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
2020/02/16 Python
Python pathlib模块使用方法及实例解析
2020/10/05 Python
CSS3教程(8):CSS3透明度指南
2009/04/02 HTML / CSS
HTML5 Canvas中使用用路径描画圆弧
2015/01/01 HTML / CSS
德国高端单身人士交友网站:ElitePartner
2018/12/02 全球购物
别名指示符是什么
2012/10/08 面试题
教你怎样写好自我评价
2013/10/05 职场文书
事业单位考核材料
2014/05/21 职场文书
二手车交易协议书标准版
2014/11/16 职场文书
初中作文评语集锦
2014/12/25 职场文书
院系推荐意见
2015/06/05 职场文书
JS数组方法some、every和find的使用详情
2021/10/05 Javascript