我有一个简单的函数来循环,想了一堆Divs,让他们在里面和外面褪色。它工作得很好,但是我试图让这个函数在点击DIV时也能执行。
我想如果我做这样的事
$('.content').click(InfiniteRotator());或
$('.content').click(function(){
InfiniteRotator();
});但是没有什么幸运和建议是最值得赞赏的。
$(window).load(function() {
function InfiniteRotator() {
//initial fade-in time (in milliseconds)
var initialFadeIn = 1000;
//interval between items (in milliseconds)
var itemInterval = 5000;
//cross-fade time (in milliseconds)
var fadeTime = 1000;
//count number of items
var numberOfItems = $('.quote').length;
//set current item
var currentItem = 0;
//show first item
$('.quote').eq(currentItem).fadeIn(initialFadeIn);
//loop through the items
var infiniteLoop = setInterval(function(){
$('.quote').eq(currentItem).fadeOut(fadeTime);
if(currentItem == numberOfItems -1){
currentItem = 0;
} else{
currentItem++;
}
$('.quote').eq(currentItem).fadeIn(fadeTime);
}, itemInterval);
}
InfiniteRotator();
$('.content').click(InfiniteRotator());
});发布于 2014-01-16 09:36:24
把这个函数的reference传递给你,
$('.content').click(InfiniteRotator);顺便说一句,就像其他人提到的,下面的代码没有问题,
$('.content').click(function(){
InfiniteRotator();
});发布于 2014-01-16 09:37:55
$('.content').click(InfiniteRotator); //<----remove the "()" here或
$('.content').click(function(){
InfiniteRotator();
});现在这两种方法都很好,但是您必须在中调用它,并且您可以将您的函数在全局范围内移到doc之外:
function InfiniteRotator() {
// your function
}
$(function(){
$('.content').click(InfiniteRotator); //<---here you can call it
});您最好使用$(function(){})文档就绪处理程序而不是$(window).load(),因为这不会等待dom完全加载。
https://stackoverflow.com/questions/21158054
复制相似问题