jQuery 变量不隐藏

发布于 2024-11-09 09:45:51 字数 522 浏览 0 评论 0原文

这是我的代码:

   $('#details').hover(function() {
    var tag = 'div.cds'
    var offset = $(this).position();
    var width = $(tag).outerWidth();
    var height = $(tag).outerHeight();
    $(tag).show();
    $(tag).css('left', offset.left - width + 'px');
    $(tag).css('top', offset.top - height + 'px');
}, function() {
    $(tag).hide();
});

当我“鼠标移开”时,变量“标签”不会隐藏。

JSFiddle 在这里: http://jsfiddle.net/79kLc/

谢谢!

Here's my code:

   $('#details').hover(function() {
    var tag = 'div.cds'
    var offset = $(this).position();
    var width = $(tag).outerWidth();
    var height = $(tag).outerHeight();
    $(tag).show();
    $(tag).css('left', offset.left - width + 'px');
    $(tag).css('top', offset.top - height + 'px');
}, function() {
    $(tag).hide();
});

When I "mouseout", the variable "tag" does not hide.

JSFiddle here: http://jsfiddle.net/79kLc/

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

铁轨上的流浪者 2024-11-16 09:45:51

了解 scope

var tag = 'div.cds'
 $('#details').hover(function() {
    var offset = $(this).position();
    var width = $(tag).outerWidth();
    var height = $(tag).outerHeight();
    $(tag).show();
    $(tag).css('left', offset.left - width + 'px');
    $(tag).css('top', offset.top - height + 'px');
}, function() {
    $(tag).hide();
});

第二个函数的作用域中不存在 tag 变量。所以我将 tag 添加到全局范围。现在应该可以了。

Learn about scope

var tag = 'div.cds'
 $('#details').hover(function() {
    var offset = $(this).position();
    var width = $(tag).outerWidth();
    var height = $(tag).outerHeight();
    $(tag).show();
    $(tag).css('left', offset.left - width + 'px');
    $(tag).css('top', offset.top - height + 'px');
}, function() {
    $(tag).hide();
});

The tag variable did not exist in the second function's scope. So i added tag to the global scope. and it should work now.

心舞飞扬 2024-11-16 09:45:51

因为 tag 不能在此范围内引用。您必须再次使用选择器。像这样: $('div.cds').hide();

更新小提琴: http://jsfiddle.net/79kLc/1/

Because tag can't be referred in this scope. You'll have to use the selector again. Like this: $('div.cds').hide();

Update fiddle: http://jsfiddle.net/79kLc/1/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文