Я довольно плохо знаком с пространством имен и т. Д., Поэтому, надеюсь, это будет просто.
У меня есть переменная в функции наведения 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
, функциональность работает.