jQuery名称空间全局变量
我对名称空间等非常陌生,所以希望这将是直接的 我在jQuery hover函数中有一个变量,它需要提供给全局空间 为了命名全局变量的名称空间,我将此代码放在一个JS文件中,该文件出现在任何其他JS代码之前:jQuery名称空间全局变量,jquery,namespaces,Jquery,Namespaces,我对名称空间等非常陌生,所以希望这将是直接的 我在jQuery hover函数中有一个变量,它需要提供给全局空间 为了命名全局变量的名称空间,我将此代码放在一个JS文件中,该文件出现在任何其他JS代码之前: $(function() { // Namespace jQuery.icisBoard = {}; }); 然后,我在一个单独的JS文件中提供了一个工具提示功能: // Tooltip function $(function() { $('.w_market
$(function() {
// Namespace
jQuery.icisBoard = {};
});
然后,我在一个单独的JS文件中提供了一个工具提示功能:
// Tooltip function
$(function() {
$('.w_market_updates ul li a:contains("...")').addClass('tip_holder');
$(".tip_holder").hover(function() {
var $containerWidth = $(this).width();
var $offset = $(this).offset();
$.icisBoard.$thisTitle = $(this).attr('title');
$('#icis_dashboard').prepend('<div id="tooltip">' + $thisTitle + '</div>');
$(this).attr('title', '')
var $tipWidth = $('#tooltip').width();
var $tipHeight = $('#tooltip').height();
$('#tooltip').css({
'display': 'block',
'position': 'absolute',
'top': $offset.top - ($tipHeight + 5),
'left': $offset.left - ($tipWidth - $containerWidth) / 2
});
}, function() {
$('#tooltip').remove();
$(this).attr('title', $.icisBoard.$thisTitle)
});
});
//工具提示函数
$(函数(){
$('.w_market_更新ul li a:contains(“…”).addClass('tip_holder');
$(“.tip_holder”).hover(函数(){
var$containerWidth=$(this).width();
var$offset=$(this.offset();
$.Board.$thisTitle=$(this.attr('title');
$('icis_dashboard')。前缀('+$thisTitle+'');
$(this.attr('title','')
var$tipWidth=$(“#工具提示”).width();
var$tipHeight=$(“#工具提示”).height();
$(“#工具提示”).css({
“显示”:“块”,
'位置':'绝对',
“顶部”:$offset.top-($tipHeight+5),
“左”:$offset.left-($tipWidth-$containerWidth)/2
});
},函数(){
$(“#工具提示”).remove();
$(this.attr('title',$.board.$thisttitle)
});
});
这似乎对我不起作用,因为我知道悬停功能不起作用。我把范围弄错了?我甚至不确定该变量在本例中是否可用于全局范围,如果我只是使用$thistititle
而不是$.icisBoard.$thistititle
则该功能有效。更改此行:
$('#icis_dashboard').prepend('<div id="tooltip">' + $thisTitle + '</div>');
$('#icis_仪表板')。前置('+$thistTitle+'');
到
$('icis_dashboard')。前置('+$.icisBoard.$thisttitle+'');
您没有变量$thistTitle
请看这里:
(我更改了一点,否则工具提示就不会出现在视图中)您收到任何错误消息吗?没有。这很奇怪,因为如果我用'var'前缀声明变量,它似乎不适用于功能的悬停部分。谢谢。对不起,我的眼睛被那件事迷住了。是否有任何方法可以扩展全局对象。例如,如果我想在Tooltip函数下有多个全局变量,例如$.ICISIBoard.Tooltip$thisTitle@RyanP13:当然,您只需将对象分配给
$.icisBoard.tooltip
,即$.icisBoard.tooltip={}
。还有一点需要注意:您不必将这个“名称空间”添加到jQuery对象中。您可以创建一个全局变量icisBoard
。
$('#icis_dashboard').prepend('<div id="tooltip">' + $.icisBoard.$thisTitle + '</div>');