我正在覆盖关闭jQuery ui方法。这样,我可以根据建立的selected
变量关闭它。
var originalCloseMethod = $input.data("autocomplete").close();
$input.data("autocomplete").close = function(event) {
if (!selected){
originalCloseMethod.apply(this, arguments);
}
selected = false;
};
它工作得很好,除了需要定期关闭时。例如,如果我在自动完成div之外单击。然后,API调用close并返回以下内容:
originalCloseMethod未定义
这使我意识到它是在UI内部内部调用此方法的。
这就是为什么我假设编写此代码的最佳方法是扩展UI而不只是覆盖它。
我的问题是,如何将相同的方法用作扩展而不是覆盖?
最佳答案
您调用关闭函数并保存它的返回值,而不保存对它的引用:
var originalCloseMethod = $input.data("autocomplete").close();
更改为:
var originalCloseMethod = $input.data("autocomplete").close;