Javascript jQuery end()不使用extend()

Javascript jQuery end()不使用extend(),javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,我有一个自定义jQuery函数: jQuery.fn.extend({ disable: function () { return $(this).each(function () { // function code }); } }); 当我这样做的时候: container.find('input') .disable() .end() .hide(); 容器未隐藏,因为在结束后我不检索容器。

我有一个自定义jQuery函数:

jQuery.fn.extend({
    disable: function () {
        return $(this).each(function () {
            // function code
        });
    }
});
当我这样做的时候:

container.find('input')
    .disable()
    .end()
    .hide();
容器未隐藏,因为在结束后我不检索容器。 如果我用一个核心函数替换disable,比如
prop()
css()
,那么
end()
获取容器

有没有办法使扩展函数的行为与普通函数类似?

不要在
禁用()自定义函数中使用
$(this)
,请使用
this

jQuery.fn.disable=function(){
返回此值。每个(函数(){
console.log('disable');
});
};
$(“#容器”)。查找('input')
.disable()
(完)
.css('background','yellow')

您已经在extend方法中的上下文
中有了元素的jquery对象。使用
$
进行转换是毫无意义的。使用
返回此。每个
而不是
返回$(此)。每个(


再次阅读问题,从一开始,注意第一个代码段再次阅读问题。这可以做到这一点,但它意味着大量的代码更改。我想让disable()返回与每个jQuery函数相同的结果。奇怪的是disable似乎返回了正确的堆栈,它只是无法使用end().如您所见,输入应替换为“zzz”。但它只是stops@Tushar:以防万一你投了反对票。我的答案会在你编辑之前更新。所以从技术上讲,我首先提供了解决方案。@MilindAnantwar是的,我也讨厌这样!
jQuery.fn.extend({
    disable: function () {
        return this.each(function () {
            console.log('disable');
        });
    }
});