1. 程式人生 > >在事件委託中使用箭頭函式產生錯誤

在事件委託中使用箭頭函式產生錯誤

$("#tempbox").on("click","#del",function(){
        var id = $(this).parents("tr").attr("data-id")
        $.ajax({
            type: "get",
            url: "http://127.0.0.1:5001/delhero/"+id,
            success: function (res) {
                if(res.status===200){
                    render();
               }
           }
      })
  })

 如上使用普通函式是沒有問題的 打印出的$(this)為w.fn.init [button#del.button.ui.red];

    $("#tempbox").on("click","#del",()=>{
            console.log($(this));
            
            var id = $(this).parents("tr").attr("data-id")
            $.ajax({
                type: "get",
                url: "http://127.0.0.1:5001/delhero/"+id,
                success: function (res) {
                    if(res.status===200){
                        render();
                    }
                }
            })
        })

如上使用箭頭函式打印出的$(this)為w.fn.init [document];

結論  凡是在選擇函式的使用上務必要分清this的指向!