ale*_*lex 1 jquery jquery-plugins waitforimages
我写了一个jQuery插件,最近我做了回调可以访问this,这是原始的选择器,所以你可以做...
$('#something').waitForImages(function() {
$(this).fadeIn(500);
});
Run Code Online (Sandbox Code Playgroud)
这看起来非常像您在jQuery API中期望的一些代码.
但是,jQuery总是提供this本机DOM元素,所以你必须用它$()来包装它以开始调用jQuery的方法.
最初,我提供this了一个jQuery对象.但是,在观察了jQuery的处理之后this,我改变了它.
什么是最好的方法?提供它包裹与否?
我会说在这种情况下将其解开,因为这似乎是一个事件处理程序.在一个事件处理程序中几乎总是(在jQuery 和原始的JS事件处理程序中)你期望this成为你正在处理的DOM元素 ......这就是我坚持的惯例.
一般来说,尽可能采用最少惊喜的原则.
如果需要,您还可以将包装元素作为参数传递给函数,例如:
$('#something').waitForImages(function(e, jQueryObjectHere) {
$(this).fadeIn(500);
});
Run Code Online (Sandbox Code Playgroud)
......这样你就不会做出意想不到的事情,但如果他们被通缉则提供好东西.我绝不会说这是必要的,只是方便.以上只是一种选择(随笔真的)......但如果你暴露此事件的东西,你可以.bind()到,不这样做,因为他们可能会结合更多的数据和期待.