jQuery名称空间全局变量

jQuery名称空间全局变量,jquery,namespaces,Jquery,Namespaces,我对名称空间等非常陌生,所以希望这将是直接的 我在jQuery hover函数中有一个变量,它需要提供给全局空间 为了命名全局变量的名称空间,我将此代码放在一个JS文件中,该文件出现在任何其他JS代码之前: $(function() { // Namespace jQuery.icisBoard = {}; }); 然后,我在一个单独的JS文件中提供了一个工具提示功能: // Tooltip function $(function() { $('.w_market

我对名称空间等非常陌生,所以希望这将是直接的

我在jQuery hover函数中有一个变量,它需要提供给全局空间

为了命名全局变量的名称空间,我将此代码放在一个JS文件中,该文件出现在任何其他JS代码之前:

$(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>');