有没有办法在jQuery的自己的命名空间中声明一个全局变量?
当然,我可以用普通的旧JavaScript声明全局变量,但它们会落在window
的命名空间中。例如,如果我有一个名为document
的变量,它肯定会覆盖document
的{{1}}对象。
jQuery是否有一个哈希表,允许您按名称存储任何对象?
感谢。
答案 0 :(得分:4)
不确定为什么要使用jQuery?您可以创建自己的命名空间:
var namespace = {
document : "Foo"
};
请详细说明,如果有某些需要以某种方式使用jQuery。
答案 1 :(得分:2)
当然可以。创建一个名称空间作为对象,然后将其附加到jQuery函数。
(function ($) {
$.myNamespace = {};
})(jQuery);
在这里,我创建了一个自动执行的匿名函数来完成工作。然后我可以在此函数内的命名空间中添加其他属性和函数。这也避免了其他人将$
重命名为其他内容的问题。
完成此操作后,您可以将您的命名空间称为jQuery.myNamespace
答案 2 :(得分:2)
如果变量是想要与稍后要使用的元素关联的东西,可能在不同的例程中,您可以使用jQuery的“数据”方法来存储它。
e.g。
:
:
// Save original HTML content.
var old_html = $('#box').html();
$('#box').data({originalContent: old_html});
// Replace with new content.
$('#box').empty().html(new_html);
:
// Restore original content (maybe in a different function).
var orig_html = $('#box').data('originalContent');
$('#box').empty().html(orig_html);
:
我希望这对你有用。
此致 尼尔