我在将一个单击函数附加到一个非常简单的jquery上时遇到了麻烦,基本上我正在做的是隐藏一堆li然后将它们淡入其中,我可以在加载页面时使用documentready工作但是,当它附加到点击时,我无法获得增加淡入淡出功能的功能。
$(document).ready(function () {
$(".extra-holder ul li").hide().each(function (i) {
var delayInterval = 1000; // milliseconds
$(this).delay(i * delayInterval).fadeIn();
});
});
这非常有效,以1秒为增量逐渐消失。
我想要做的是将它绑定到点击事件,这个“有效”,但它不会增加淡入淡出,它们只是同时弹出。
$(document).ready(function () {
$(".extra-holder ul li").hide().each(function (i) {
var delayInterval = 1000; // milliseconds
$('.extra-related').click(function () {
$(".extra-holder ul li").delay(i * delayInterval).fadeIn();
});
});
});
正确答案(在点击时删除隐藏): -
$(document).ready(function () {
$(".extra-holder ul li").hide();
var delayInterval = 300;
$('.extra-related').click(function () {
$(".extra-holder ul li").each(function (i) {
$(this).delay(i * delayInterval).fadeIn();
});
});
});
答案 0 :(得分:4)
您需要更改循环,在click事件中移动“ul li”每个循环。
以下是代码:
$(document).ready(function () {
$('.extra-related').click(function () {
$(".extra-holder ul li").hide().each(function (i) {
var delayInterval = 1000; // milliseconds
$(this).delay(i * delayInterval).fadeIn();
});
});
});
答案 1 :(得分:0)
只需使用setTimeout()
$(document).ready(function () {
$(".extra-holder ul li").hide().each(function (i) {
var delayInterval = 1000; // milliseconds
$('.extra-related').click(function () {
setTimeout(function(){
$(".extra-holder ul li").fadeIn();
}, delayInterval);
});
});
});
答案 2 :(得分:0)
<强> Working jsFiddle Demo 强>
您必须在click
循环之外附加您的each
事件处理程序:
$(document).ready(function () {
$(".extra-holder ul li").hide();
var delayInterval = 1000;
$('.extra-related').click(function () {
$(".extra-holder ul li").hide().each(function (i) {
$(this).delay(i * delayInterval).fadeIn();
});
});
});