对于命名空间等非常新,所以希望这很简单。
我在jQuery悬停函数中有一个变量,需要提供给全局空间。
要命名我的全局变量,我将此代码放在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)
});
});
这对我来说似乎不起作用,因为知道悬停功能不起作用。我的范围都错了吗?在这种情况下,我甚至不确定该变量是否可用于全局范围,如果我只有$thisTitle
而不是$.icisBoard.$thisTitle
,则该功能可以正常工作。
答案 0 :(得分:1)
更改此行:
$('#icis_dashboard').prepend('<div id="tooltip">' + $thisTitle + '</div>');
到
$('#icis_dashboard').prepend('<div id="tooltip">' + $.icisBoard.$thisTitle + '</div>');
您没有变量$thisTitle
。
见这里:http://jsfiddle.net/qna7W/
(我改了一下,否则工具提示不会出现在视图中)