命名空间全局变量问题
我对命名空间和全局变量非常陌生。我目前有这段代码:
$('#formats1').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() {
$("div.cds").hide();
});
$('#formats2').hover(function() {
var tag = 'div.lp';
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() {
$("div.lp").hide();
});
目前对于各种 div 重复了很多次。
我觉得这将是一个整合命名空间和命名空间的好机会。全局变量,但我不确定该怎么做。有什么想法吗?
谢谢!
I'm very new to namespace and global variables. I presently have this code:
$('#formats1').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() {
$("div.cds").hide();
});
$('#formats2').hover(function() {
var tag = 'div.lp';
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() {
$("div.lp").hide();
});
This is repeated many times for various divs at the moment.
I feel like this would be a good opportunity to incorporate a namespace & global variables but I'm unsure how to do it. Any ideas?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
为什么不尝试使用函数呢?
Why don't you try using a function?
嗯,不惜一切代价创建命名空间并避免全局变量始终是一个非常好主意。但在这个特殊的例子中,你只需要一点 Javascript 和jQuery Sugar:
唯一应该在这里关闭的合理变量是
$('div.cds')
。例如,您可以将整个代码包装到自调用方法中:Well, it's always a very good idea to create namespaces and avoid global variables at all costs. But in this particular instance, you just need a little bit Javascript & jQuery sugar:
The only reasonable variable which should get closured here, is
$('div.cds')
. For instance, you can wrap this whole code into a self-invoking method:您可以将要使用的类附加到悬停的项目。因此,如果您的 HTML 看起来像这样:
那么您可以在 JavaScript 中这样做:
如果您使用的是较旧的 jQuery,那么您可能需要使用
$this.attr('data-tagclass')
而不是$this.data('tagclass')
。You could attach the class to use to the hovered item. So, if your HTML looks like this:
Then you could so this in your JavaScript:
If you're using an older jQuery then you might need to use
$this.attr('data-tagclass')
instead of$this.data('tagclass')
.