検索

ホームページ  >  に質問  >  本文

javascript - JS中function (e) { //code }中的 “e”

我知道这个e(event)中包含:stopPropagation,preventDefault,offset等等,看了ppk的几篇文章个人理解是e会保存浏览器中最后发生的事件(理解不对请指正)。

现在遇到的问题可能有点超出关于“e”本身的范围了,先说逻辑:id为btn的元素被点击-> 删除掉#btn元素 -> id为anotherBtn的元素被点击

看代码:

    $('#btn').on('click', function (e) {
        //获取#btn元素
        console.log($(e.target)); //output: [button#btn, context:...]

        //获取#btn前的元素
        console.log($(e.target).prev()); //output: [span, context:...]

        //移除#btn
        $(this).remove();

        $('#anotherBtn').one('click', function () {
            //获取#btn元素
            console.log($(e.target)); //output: [button#btn, context:...]

            //获取#btn前的元素
            console.log($(e.target).prev()); //output: [prevObject: b.fn.b.init[1], context:...]
        });
    });

也就是说虽然元素被移除了,但是还是e.target还是把它保存了下来(类似一个快照?),这是什么原理呢?

感谢任何有价值的回答!

天蓬老师天蓬老师2814日前1827

全員に返信(1)返信します

  • 迷茫

    迷茫2017-04-10 13:14:24

    var i = true
    !function(o){
        i = !i
        console.log(o)
    }(i)
    console.log(i)
    

    别把问题想的太复杂 ^_^

    返事
    0
  • キャンセル返事