2012-03-10 91 views
0

首先,老实说,当谈到JQuery时,我是个noob。我一直在观看大量的教程,并阅读jQuery网站本身。在我开始理解它的时候,这个概念至今还没有被“点击”。与slideToggle在嵌套列表上挣扎

我目前正在进行产品展示,以便在产品图像上方悬停时需要滑动的框。此框包含模型列表。

我已经得到了页面在这里设置:

http://www.tailwatersflyfishing.com/sage-fly-rods

这是我试图复制(我们的棒供应商之一)

http://www.sageflyfish.com/rods-landing.html

我的影响已经试图编写代码,但没能实现它的工作。这是我目前在页面:

$('document').ready(function() { 
    $('.rod-tall').children('.rod-inner').children('.rod-list').hide(); 
    $('.rod-list ul div li ul li a').click(function() { 
     window.location = $(this).attr('href'); 
    }); 

    $(".rod-tall .rod-inner").mouseenter(function() { 
    $(this).children('.rodlist').children('.desc-box').slideToggle('fast'); 
    }); 

    $(".rod-tall .rod-inner").mouseleave(function() { 
    $(this).children('.rodlist').children('.desc-box').slideToggle('fast'); 
    }); 
}); 

---- ---- UPDATE

我现在有这包括在我的网页:

<script type="text/javascript"> 
    $(document).ready(function() { 
    $('.rod-list').hide(); 
    $('.rod-tall').hover(function() { 
    $('.rod-list',this).slideToggle('fast'); 
    },function() { 
    $('.rod-list',this).slideToggle('fast'); 
    });​ 
</script> 

所有原型错误不见了。但我得到这个错误(未捕获的SyntaxError:意外的令牌非法),我希望这是脚本不起作用的原因。是否有导致此错误的无效字符或隐形字符?

谢谢!

+0

各地'$文件( '文件')没有引号。就绪('。 – j08691 2012-03-10 18:24:41

+0

好的 - 我看到进展。至少我有一些隐藏的盒子。这里是一个现场版本:http://jsfiddle.net/mattj06/TgFvP/14/ – 2012-03-10 19:11:03

回答

0

这个怎么样(jsFiddle example):

jQuery的

$('.rod-list').hide(); 
$('.rod-tall').hover(function() { 
    $('.rod-list',this).slideToggle('fast'); 
},function() { 
    $('.rod-list',this).slideToggle('fast'); 
}); 

CSS

.rod-list { 
    position:absolute; 
} 
+0

完美的作品!谢谢!所以我想我不需要$('document')。ready();?另外,我已经在网站中实现了这一点,我没有看到任何效果。包含jQuery库,所以我不知道为什么它不在网站上工作。有任何想法吗? – 2012-03-10 20:28:53

+0

不,您可能应该保留document.ready部分,因为它只是在DOM加载时运行代码。上面的代码(和小提琴中的代码)意味着与document.ready调用一起存在。 – j08691 2012-03-10 20:30:33

+0

至于为什么它不能在你的网站上运行,当我加载你的页面并打开Firebug时,我发现了几个错误,大多数原型相关。 – j08691 2012-03-10 20:31:55

0

有在页面上的错误:

window.location = $(this).attr('href';) 

分号是括号内。

+0

好吧,我只是解决了这个问题,我仍然没有看到任何改变。我的代码甚至看起来远程正确吗? – 2012-03-10 18:54:37

0

这就是你正在尝试做的:

$(document).ready(function() { 
    $('.rod-list').hide(); 

    $('.rod-tall').on({ 
     mouseenter: function() { 
      $('.rod-list', this).slideDown('fast'); 
     }, 
     mouseleave: function() { 
      $('.rod-list', this).slideUp('fast');  
     } 
    }); 
});​ 

FIDDLE

+0

谢谢adeneo - 这个工程很好,但我确实希望图像坚持到位。上面的绝对定位的例子是有用的。谢谢! – 2012-03-10 20:29:56