我正在查看一些代码中的以下内容:
// Save an empty jQuery in our cache for now.
dialogs[id] = $();
任何人都可以解释它的含义。我不知道这个概念。感谢
更新:
这里有更多的代码:
var loadAndShowDialog = function (id, link, url) {
var separator = url.indexOf('?') >= 0 ? '&' : '?';
// Save an empty jQuery in our cache for now.
dialogs[id] = $();
// Load the dialog with the content=1 QueryString in order to get a PartialView
$.get(url + separator + 'content=1')
.done(function (content) {
dialogs[id] = $('<div class="modal-popup">' + content + '</div>')
.hide() // Hide the dialog for now so we prevent flicker
.appendTo(document.body)
.filter('div') // Filter for the div tag only, script tags could surface
.dialog({ // Create the jQuery UI dialog
title: link.data('dialog-title'),
modal: true,
resizable: true,
draggable: true,
width: link.data('dialog-width') || 300
})
.find('form') // Attach logic on forms
.submit(formSubmitHandler)
.end();
});
};
我仍然看不出第一行的意义。有人向我解释说它创建了一个空的jquery对象,但我无法理解为什么。
答案 0 :(得分:3)
它创建一个空的jQuery对象。该对象不包含任何实际元素,但它确实添加了所有jQuery功能。
var $el = $();
// later you can do…
$el = $el.add('body'); // same effect as if you’d written `$el = $('body');`
答案 1 :(得分:2)
来自the docs(您确实检查了文档,对吧?):
返回空集
从jQuery 1.4开始,调用不带参数的
jQuery()
方法会返回一个空的jQuery集(.length
属性为0
)。
答案 2 :(得分:2)
其他答案是正确的;调用$()
会创建一个空的jQuery对象。
但是,在现有代码的上下文中,似乎并不需要它。使用dialogs[id]
初始化的$()
变量仅使用其他值重新分配,而不使用其原始值。
然而,有一点需要注意的是,dialogs[id]
变量随后在完成AJAX调用期间被赋予另一个值 ,这意味着它可以在其他地方使用在异步操作$.get
正在进行的代码中。它可能在函数内部,但是使用var
没有正确确定范围,所以这有点可疑。
从它的外观(以及它的使用方式)来看,我愿意打赌它不是,你可能是正确的$()
初始化是完全没必要的。