Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
热接线/引导jQuery';s构造函数_Jquery - Fatal编程技术网

热接线/引导jQuery';s构造函数

热接线/引导jQuery';s构造函数,jquery,Jquery,是否有任何方法可以连接jQuery的构造函数(或者引导,如果您愿意的话),以便在其默认功能之前实现功能。例如;假设我想实现自动缓存 Peudo代码警报 我知道这会破坏动态更新的元素。这里的目标是一个粗糙的实现,它将被锁定在某个黑暗的角落。我也承认,这是违反所有常识的。但是幽默我:)你想要的是 它允许创建jQuery的新副本,并在不破坏全局jQuery的情况下覆盖这些方法和属性 如果必须,您可以将jQuery的这个子类注入到全局范围中 (function() { var $$ = jQue

是否有任何方法可以连接jQuery的构造函数(或者引导,如果您愿意的话),以便在其默认功能之前实现功能。例如;假设我想实现自动缓存

Peudo代码警报

我知道这会破坏动态更新的元素。这里的目标是一个粗糙的实现,它将被锁定在某个黑暗的角落。我也承认,这是违反所有常识的。但是幽默我:)

你想要的是

它允许创建jQuery的新副本,并在不破坏全局jQuery的情况下覆盖这些方法和属性

如果必须,您可以将jQuery的这个子类注入到全局范围中

(function() {
    var $$ = jQuery.sub();

    $$.fn.init = function() {

        var obj = $.apply(null, arguments);
        console.log("object: ", obj);
        return obj;
    };

    $$(function() {
        // do stuff with overwritten jQuery.
        $$("div");
    });

})();

最好只创建一个返回jQuery对象的工厂,因为jQuery有太多的闭包,您需要确切地知道发生了什么,否则它会崩溃


记录的第二个对象实际上是文档,它来自
$$(f)
调用,因为当您使用jQuery作为就绪处理程序时,选择器将成为文档。

什么是构造函数的“热线”?你是说除了写一个插件以外的东西吗?与所有javascript一样,您可以在任何地方覆盖或添加任何您想要的内容。。。问题是这个框架是否能放置得很好。-1你测试过这个吗?up的选民们有没有测试过这个?@roosteronacid这是伪代码。不完全工作的代码。当然,它不起作用,因为我到处都有
,这不是有效的语法。@Ryanos:我在寻找工作代码。即使你的代码被净化了,它仍然失败。我刚才在键盘上有点太快了。“失败”有点太强烈了。。。它工作正常,但您无权访问查询结果。当然您可以控制台.log()之类的东西,但是如果没有对查询结果的访问权(能够在返回结果之前修改结果,或者返回其他内容),则无法在应用它之前先修改它,然后再返回它。顺序并不重要。只要您知道自己在做什么,并且不破坏jQueryAPI
(function() {
    var $$ = jQuery.sub();

    $$.fn.init = function() {

        var obj = $.apply(null, arguments);
        console.log("object: ", obj);
        return obj;
    };

    $$(function() {
        // do stuff with overwritten jQuery.
        $$("div");
    });

})();