我正在重写关闭的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而不仅仅是覆盖它。
我的问题是,如何将此方法应用为扩展而不是覆盖?
答案 0 :(得分:4)
你调用close函数并保存它的返回值,而不保存对它的引用:
var originalCloseMethod = $input.data("autocomplete").close();
将其更改为:
var originalCloseMethod = $input.data("autocomplete").close;