如何编辑未压缩的 jQuery 库以在函数中提出我自己的要求?

How can I edit the uncompressed jQuery library to put up my own requirement in a function?

我有一项任务,我必须在函数中包含特定要求。 jQuery的CDN代码和我们使用的正则jQuery相比,看起来有点难懂。

问题是,当我关注 input 框之类的东西时,它不仅应该关注它,而且 return 它的 topleft 位置。此功能应该包含在 CDN 文件中。然后使用常规程序我必须调用它。

$(document).ready(function(){
    $("input").focus(function(){
        $("input").css("background", "lightblue");
        var p = $( "input" );
        var position = p.offset();
        $("div").text( "left: " + position.left + ", top: " + position.top );       
    });
});

首先永远不要修改库的源代码。如果你这样做,它会将你绑定到该特定版本的代码。如果作者更新库,他们会破坏您所做的添加。如果您想创建额外的功能,请创建您自己的扩展方法或原型。

就是说,要执行您的要求,您只需修改代码以仅引用引发事件的元素。为此,请在处理函数中使用 this 关键字。试试这个:

$("input").focus(function() {
  var $input = $(this).css("background", "lightblue");
  var position = $input.offset();
  console.log("left: " + position.left + ", top: " + position.top);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input />
<input />

根据我的经验,不建议您尝试执行此操作。除非不维护库,否则您可以从其 github 存储库中获取一个分支,然后添加您的更改以便维护它。

在这种情况下,jQuery 是一个高度维护的项目,编辑它的源代码以添加您自己的代码将是灾难性的。相反,使用提供的插件架构为现有代码添加更多功能。

查看官方文档以大致了解此功能。

How to create a basic jQuery plugin.