jQuery变量故障
我试图用.load()函数加载一些内容,下面是我的代码jQuery变量故障,jquery,variables,Jquery,Variables,我试图用.load()函数加载一些内容,下面是我的代码 $(window).load(function() { $('.spotlight').append('<div class="caption"></div>'); $('.spotlight .caption').hover(function () { $(this).animate({ top : '-=50px' }, 150)}, function () {
$(window).load(function() {
$('.spotlight').append('<div class="caption"></div>');
$('.spotlight .caption').hover(function () {
$(this).animate({ top : '-=50px' }, 150)}, function () {
$(this).animate({ top : '+=50px' }, 150)}
);
$('.caption').load($(this).parent().data('who')+'.html');
});
$(窗口).load(函数(){
$('.spotlight')。追加('');
$('.spotlight.caption').hover(函数(){
$(this.animate({top:'-=50px'},150)},函数(){
$(this.animate({top:'+=50px'},150)}
);
$('.caption').load($(this.parent().data('who')+'.html');
});
但是在HTML中我有
<div class="spotlight" who="student">
<img src="sga_small.jpg" />
</div>
<div class="spotlight" who="staff">
<img src="sga_small.jpg" />
</div>
但它试图加载undefined.html。我该如何着手解决这个问题?
这里有一个页面链接很可能返回未定义的页面:
$(this).parent().attr('who')
确保此父项在属性who中有一个值。首先,您应该使用
data who=“student”
而不仅仅是who
,这样您就可以使用$(this.parent().data('who')+'.html'
现在,您已经更新以包含更多的代码,该漏洞更加明显在该上下文中,此
实际上是窗口
,因为您位于$(窗口).load()处理程序的内部。尝试这样做:
// fires on document ready, not quite window load, but better:
$(function() {
$('.spotlight').each(function() {
var spot = $( this ),
caption = $("<div class='caption'></div>").appendTo(spot);
caption.load( spot.data('who') + '.html' );
spot.hover(function() {
caption.animate({ top : '-=50px' }, 150)
}, function () {
caption.animate({ top : '+=50px' }, 150)
});
});
});
//在文档就绪时触发,不完全是窗口加载,但更好:
$(函数(){
$('.spotlight')。每个(函数(){
var spot=$(此),
标题=$(“”)。附录(点);
caption.load(spot.data('who')+'.html');
spot.hover(函数(){
动画({top:'-=50px'},150)
},函数(){
动画({top:'+=50px'},150)
});
});
});
试试这个:
$('.caption').each(function() {
$(this).load($(this).parent().attr('who') + '.html');
});
您能告诉我们您从中调用.load()
的整个事件吗?如果没有该函数的上下文,很难知道这个
是什么……你能用带有标题类的元素粘贴完整的HTML吗?抱歉,添加了其余的代码。而且我认为,谁
属性在任何元素上都是无效的。数据-{anythine},然而,@Koalatea-您需要在原始问题中给我们提供更多信息-请查看评论…啊,我刚刚意识到它是“window.load()”,这是我犯的一个愚蠢的错误。但是它仍然尝试加载undefined.html,除了尝试加载一次之外,它失败了两次,所以至少这样更好。@Koalatea你是否在html中使用了数据who
属性而不是who
??我是个白痴,忘了做那部分。谢谢你容忍我!现在工作正常。问题是它加载两个。标题的文件与它加载的文件相同,但有两个具有属性的父项,使其未定义