我正在尝试将一个div框作为多个功能的主按钮;这些功能会相继发射;但按照新的CLICK。 例如, Click = Function触发。在行火灾中单击=下一个函数,依此类推。目前我有以下;这很好,但它不是按照编码的方式连续触发功能,每次点击都需要;相继。在'http://bit.ly/10BW89N'
的现场演示我的困境那么如何创建一个按钮和30个将在每次单击时调用的函数。如果定义了功能,它将调用该功能,否则它将提示点击号码?
$(document).ready(function () {
var a1_Events = [function1, function2, function3, function4, function5, function6, function7, function8],
a1_c = 0;
function function1() {
alert('Click 1!');
}
function function2() {
alert('Click 2!');
}
function function3() {
$("#area1").hide();
$("#area2").show();
alert('Click 3!');
}
function function4() {
alert('Click 4!');
}
function function5() {
alert('Click 5!');
}
function function6() {
$("#bg_div").hide(0).delay(1500).show(0);
$("#bg_skew").show(0).delay(1500).hide(0);
alert('Click 6!');
}
function function7() {
alert('Click 7!');
}
function function8() {
$("#area1").hide(0).delay(1500).show(0);
$("#area2").hide(0).delay(1500).show(0);
$("#sound1").show(0).delay(4500).hide(0);
document.getElementById("id1").play();
$("#hammer").show(0).delay(1500).hide(0);
$("#youwin").show(0).delay(3500).hide(0);
alert('Click 8!');
}
$('#area1').click(function () {
a1_Events[a1_c++ % a1_Events.length]();
});
$("#area2").click(function () {
$("#area1").show();
$("#area2").hide();
alert('Click 9!');
});
});
function alert(msg) {
$("#alert").text(msg).show(0).delay(1500).hide(0);
}
答案 0 :(得分:0)
我会试试这个:
var a1_Events = [function1, function2, function3, function4, function5, function6, function7, function8];
$('#area1').click(function () {
if (a1_Events.length > 0)
{
var tfunc = a1_Events.shift();
tfunc();
}
else
{
// all functions have been executed
}
});
此代码在执行时从数组中删除每个函数,直到它结束。您仍然需要原始代码中的所有函数声明。
答案 1 :(得分:0)
您可以根据单击按钮/ div的次数使用switch
或if
语句来简化代码。每个案例都会控制你的行为,解雇你的职能,无论如何......
$('button').click(function(){
++funcNum;
switch(funcNum){
case 1:
alert('This is click ' + funcNum);
break;
以下是一个示例小提琴 - http://jsfiddle.net/juf5u/2
答案 2 :(得分:0)
你也可以试试这个:
$(document).ready(function () {
var a1_Events = function1,
a1_c = 0;
function function1() {
a1_Events=function2;
alert('Click 1!');
}
function function2() {
a1_Events=function3;
alert('Click 2!');
}
function function3() {
a1_Events=function4;
$("#area1").hide();
$("#area2").show();
alert('Click 3!');
}.... so on