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批量操作CSS属性详细解析
Dec 16 Javascript
浅析JavaScript 调试方法和技巧
Oct 22 Javascript
JS实现的图片预览插件与用法示例【不上传图片】
Nov 25 Javascript
javascript 正则表达式分组、断言详解
Apr 20 Javascript
jquery 输入框查找关键字并提亮颜色的实例代码
Jan 23 jQuery
基于vue.js中关于下拉框的值默认及绑定问题
Aug 22 Javascript
JavaScript显式数据类型转换详解
Mar 18 Javascript
vue获取时间戳转换为日期格式代码实例
Apr 17 Javascript
JS拖动选择table里的单元格完整实例【基于jQuery】
May 28 jQuery
vue-cli 3 全局过滤器的实例代码详解
Jun 03 Javascript
VUE 解决mode为history页面为空白的问题
Nov 01 Javascript
JS实现动态无缝轮播
Jan 11 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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
PHP 定界符 使用技巧
2009/06/14 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
2015/07/08 PHP
PHP模块化安装教程
2016/06/01 PHP
PHP levenshtein()函数用法讲解
2019/03/08 PHP
JXTree对象,读取外部xml文件数据,生成树的函数
2007/04/02 Javascript
Autocomplete Textbox Example javascript实现自动完成成功
2007/08/17 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
2014/04/04 Javascript
JavaScript中的数组操作介绍
2014/12/30 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
2016/01/14 Javascript
获取JS中网页各种高宽与位置的方法总结
2016/07/27 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
2016/08/15 Javascript
javascript html5轻松实现拖动功能
2017/03/01 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
2017/06/21 Javascript
js实现省市级联效果分享
2017/08/10 Javascript
浅谈React和Redux的连接react-redux
2017/12/04 Javascript
解决webpack dev-server不能匹配post请求的问题
2018/08/24 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
[04:27]2014DOTA2国际邀请赛 NAVI战队官方纪录片
2014/07/21 DOTA
跟老齐学Python之总结参数的传递
2014/10/10 Python
python subprocess 杀掉全部派生的子进程方法
2017/01/16 Python
分享一个可以生成各种进制格式IP的小工具实例代码
2017/07/28 Python
使用Python设计一个代码统计工具
2018/04/04 Python
浅析python参数的知识点
2018/12/10 Python
python中wx模块的具体使用方法
2020/05/15 Python
使用数据结构给女朋友写个Html5走迷宫游戏
2019/11/26 HTML / CSS
荷兰包包购物网站:The Little Green Bag
2018/03/17 全球购物
2013英文求职信模板范文
2013/11/15 职场文书
我的画教学反思
2014/04/28 职场文书
汽车维修求职信
2014/06/15 职场文书
2014大四本科生自我鉴定总结
2014/10/04 职场文书
2014年财务个人工作总结
2014/12/08 职场文书
工程部经理岗位职责
2015/02/02 职场文书
2016年寒假生活小结
2015/10/10 职场文书
小学生必读成语故事大全:送给暑假的你们
2019/07/09 职场文书