搜尋

首頁  >  問答  >  主體

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 天前1823

全部回覆(1)我來回復

  • 迷茫

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

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

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

    回覆
    0
  • 取消回覆