我有这个page我正在播放旋转幻灯片。我目前正在改变每一秒进行测试。幻灯片显示效果很好,但由于某些原因而停止它并不容易。我在顶部有一个应该阻止它的链接。
<a class="stop" href="#">Stop to play the video</a>
$('.stop').click(function(){
$('#slideshow').cycle('stop');
});
这应该停止脚本但不是。但是如果你打开firebug并将这一行粘贴到控制台中,脚本就会停止。是什么给了什么?
$('#slideshow').cycle('stop');
答案 0 :(得分:5)
仔细看看你的代码,然后你在$(document).ready(...)
处理程序之外和html中的元素之前发出了javascript,所以你试图将事件附加到一个没有'的元素上存在。
将您的点击处理程序移到$(document).ready(...)
内或将其放在html中的链接下方。
答案 1 :(得分:2)
这可能是一个时间问题,在页面加载时我在FireBug中收到此消息:
[cycle] terminating; zero elements found by selector
[cycle] terminating; too few slides: 1
[cycle] terminating; zero elements found by selector
[cycle] terminating; zero elements found by selector
[cycle] terminating; zero elements found by selector
[cycle] terminating; zero elements found by selector
但是,如果我在页面加载后执行以下代码,则链接可以正常工作。
$('.stop').click(function(){
$('#slideshow').cycle('stop');
});
答案 2 :(得分:2)
使用$.live()
或$.delegate()
方法 - 它们将绑定到与选择器匹配的所有当前和未来元素。
答案 3 :(得分:0)
您是否有多个已添加“停止”类的元素,在这种情况下您可能会遇到问题。 如果是上述情况,您可以尝试以下方法:
$('a.stop').click(function(){
$('#slideshow').cycle('stop');
});
如果您有多个带类停止的链接,那么如果您想绑定其中的每一个,您应该执行类似这样的操作
$('a.stop').each(function(){
$(this).each("click",function(){
$('#slideshow').cycle('stop');
});
});
如果你只想绑定其中一个链接,那么只需添加一个id属性,然后在按id获取元素后将其绑定到元素。
注意:我假设您仅在页面加载后绑定元素。