我刚刚开始使用jQuery,我想知道在用户选择“确定”后如何重新调用确认窗口。我知道确认框返回一个布尔值,我将需要使用if语句。但是如何重新调用匿名函数(如果可能)?我有一种感觉,我需要一个递归函数,但我不太确定。
$(function)(){
$("#diceButton").click(function(){
var dice = Math.floor((Math.random()*12)+1);
var answer=confirm("You rolled "+dice+"! Roll again or quit?");
if(answer===true)
});
});
如果有人能指出我朝着正确的方向前进的话,那就是我坚持的地方!
答案 0 :(得分:2)
JavaScript中没有规则匿名函数不应该有名称。您可以拥有匿名函数的名称,该名称只能在函数中访问。
$(function () {
$("#diceButton").click(function diceClick(){
var dice = Math.floor((Math.random()*12)+1);
if(confirm("You rolled "+dice+"! Roll again or quit?")) {
diceClick();
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<button id="diceButton">Dice</button>
答案 1 :(得分:1)
function rollDice(){
var dice = Math.floor((Math.random()*12)+1);
if(confirm("You rolled "+dice+"! Roll again or quit?")) {
rollDice();
}
}
rollDice();
&#13;
使用事件的jQuery解决方案:
$("#diceButton").on('dice.roll', function(){
var dice = Math.floor((Math.random()*12)+1);
var $self = $(this);
if(confirm("You rolled "+dice+"! Roll again or quit?")) {
$self.trigger('dice.roll');
}
});
$("#diceButton").click(function(){
$(this).trigger('dice.roll');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="diceButton">Test Your Luck</button>
&#13;
或者更简单的解决方案 - 只需按下按钮:
$("#diceButton").click(function(){
var dice = Math.floor((Math.random()*12)+1);
var $self = $(this);
if(confirm("You rolled "+dice+"! Roll again or quit?")) {
$self.click();
}
});
&#13;
答案 2 :(得分:0)
您可以将其包装到一个函数中,然后单击
调用它$("#diceButton").click(roll_dice);
function roll_dice() {
var dice = Math.floor((Math.random()*12)+1);
var answer=confirm("You rolled "+dice+"! Roll again or quit?");
if(answer===true) {
roll_dice();
}
}
答案 3 :(得分:0)
提取为功能:
function rollDice()
{
var dice = Math.floor((Math.random()*12)+1);
var answer=confirm("You rolled "+dice+"! Roll again or quit?");
if(answer===true)
{
rollDice();
}
else return;
}
然后叫它:
$(function(){
$("#diceButton").click(function(){
rollDice();
});
});