为了账号安全,请及时绑定邮箱和手机立即绑定

还是不懂这个问题

为什么要用e.target,value,而不用$(this)

正在回答

6 回答

楼主很细心嘛,学习了。去查了一下资料,currentTarget、target和this

currentTarget    返回其事件监听器触发该事件的元素。

target    返回触发此事件的元素(事件的目标节点)。

this 我觉得this==currentTarget。

下面是我的demo

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
</head>
<body>
    <div id="div1" style="width:200px;height:200px;border:1px solid red;">
        <input type="button" id="btn" style="width: 100px;height:30px;border:1px solid blue;">
    </div>
    <script>
        $("#btn").click(function(ev){
            console.log("currentTarget"+"-----"+ev.currentTarget);
            console.log("target"+"---------"+ev.target);
            console.log("this"+"-----"+this);
            console.log("------------------------------");
        })
        $("#div1").click(function(ev){
            console.log("currentTarget"+"-----"+ev.currentTarget);
            console.log("target"+"---------"+ev.target);
            console.log("this"+"-----"+this);
        })
    </script>
</body>
</html>

0 回复 有任何疑惑可以回复我~


最主要的就是e.target是不受冒泡事件影响的,它是静态的;而this则受冒泡影响,是动态的,可以事件委托.

0 回复 有任何疑惑可以回复我~

我改成$(this).val()也可以执行啊

0 回复 有任何疑惑可以回复我~
#1

唯尔半截湘妃 提问者

对呀我也试了
2016-08-31 回复 有任何疑惑可以回复我~

this冒泡,e.target.value不冒泡

0 回复 有任何疑惑可以回复我~

e.target 是触发,也就是你点击的元素 比如某个div

this是当前的元素,可能受冒泡的影响 比如body

0 回复 有任何疑惑可以回复我~

e.target 是触发,也就是你点击的元素 比如某个div

this是当前的元素比如body,可能受冒泡的影响

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
jQuery基础(三)—事件篇
  • 参与学习       90002    人
  • 解答问题       625    个

jQuery第三阶段开启事件修炼,掌握对页面进行交互的操作

进入课程

还是不懂这个问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信