jq日历插件引起的思考$("ele") 和 $($("ele"))

本文详细解析了如何在JQ对象中通过$.fn.extend()方法扩展CalenderPlugin,探讨了不同this指向的问题,包括事件绑定、对象属性绑定及内部函数调用的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在JQ对象里面扩展一个CalenderPlugin

写在了$.fn.extend()的参数里面

传进去一个obj,里面有个属性:CalenderPlugin,是一个匿名函数,

分析,第一个this指向谁?

1.谁调用就指向谁 $("#date_input") 是个jq对象,也就是说,后面绑定的create,bindData都是JQ对象的属性,而不是DOM对象的属性,this----> $(“date_input”)

2.这里的this就是JQ对象,所以写成this也是OK的

在这里插入图片描述

因为 $(“a”) $( $(“a”))都是JQ对象,但是这两个JQ对象是不等价的,不同的对象永不相等,只能进行属性值的比较,不能在 $(“a”) 上绑定属性,用 $( $(“a”))调用,因为 $( $(“a”))是一个新的对象

3.所以在这里必须用最外层的this_才能取到这个函数,如果用$(this)是取不到的,甚至用 $(this_)也不行,因为一用 $()包起来就是一个新的JQ对象了,就再也没有之前的方法与属性了

在这里插入图片描述

4.在$(“xxx”).click(function(){ 里面this指向被点击的元素,因为click包装了一个ele.onclick = fn [我们写的回调函数]})

5. $( “ele”) 和 $( $(“ele”))只绑定事件不添加其他属性时是等价的,内部都是ele.onclick = fn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值