Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单onClick每隔单击一次Javascript HTML_Javascript_Html - Fatal编程技术网

简单onClick每隔单击一次Javascript HTML

简单onClick每隔单击一次Javascript HTML,javascript,html,Javascript,Html,同时执行这两个功能。不好,因为它只是执行动作\playnow\然后立即停止 我需要onClick每隔单击一次来执行该功能 单击1:\playnow\ 单击2:\停止\ 单击3:\playnow\ 等等 有没有一种简单的方法可以实现这一点?定义一个保存当前状态的var: onclick="HandleAction(\'playnow\');HandleAction(\'stop\');" 定义保存当前状态的变量: onclick="HandleAction(\'playnow\');Handle

同时执行这两个功能。不好,因为它只是执行动作\playnow\然后立即停止

我需要onClick每隔单击一次来执行该功能

单击1:\playnow\

单击2:\停止\

单击3:\playnow\

等等


有没有一种简单的方法可以实现这一点?

定义一个保存当前状态的var:

onclick="HandleAction(\'playnow\');HandleAction(\'stop\');"

定义保存当前状态的变量:

onclick="HandleAction(\'playnow\');HandleAction(\'stop\');"

定义保存当前状态的变量:

onclick="HandleAction(\'playnow\');HandleAction(\'stop\');"

定义保存当前状态的变量:

onclick="HandleAction(\'playnow\');HandleAction(\'stop\');"

对。你可以这样做

var state = false;

function handleAction() {
    if (state == false) {
        // stuff for 'playnow' action

        state = true;
        return;
    }

    if (state == true) {
        // stuff for 'stop' action

        state = false;
        return;
    }
}
要实现这一点,您可以使用如下html:

 var play=false,
     button = document.getElementById('playbtn'),
     audiotag = document.getElementById('audio');

 button.addEventListener('click', function(){
       if(play){
          audiotag.pause()
          play=true;
       }else{
          audiotag.play();
          play=false;
       }
 })
因此,您可以像上面那样添加音频html,并使用getElementById获取javascript中的每个元素。然后,附加一个事件侦听器来侦听click事件,并调用匿名函数处理程序。在该函数中,您可以直接在音频对象上使用本机播放和暂停方法,在音频播放时停止播放,然后在停止时再次播放


您还可以向音频标签添加其他属性,以便在页面加载后立即开始播放。单击按钮时,play变量设置为true,因此它将在第一次单击时暂停,然后将其设置为false。随后的单击将再次播放并再次将变量设置为true,依此类推。你可以这样做

var state = false;

function handleAction() {
    if (state == false) {
        // stuff for 'playnow' action

        state = true;
        return;
    }

    if (state == true) {
        // stuff for 'stop' action

        state = false;
        return;
    }
}
要实现这一点,您可以使用如下html:

 var play=false,
     button = document.getElementById('playbtn'),
     audiotag = document.getElementById('audio');

 button.addEventListener('click', function(){
       if(play){
          audiotag.pause()
          play=true;
       }else{
          audiotag.play();
          play=false;
       }
 })
因此,您可以像上面那样添加音频html,并使用getElementById获取javascript中的每个元素。然后,附加一个事件侦听器来侦听click事件,并调用匿名函数处理程序。在该函数中,您可以直接在音频对象上使用本机播放和暂停方法,在音频播放时停止播放,然后在停止时再次播放


您还可以向音频标签添加其他属性,以便在页面加载后立即开始播放。单击按钮时,play变量设置为true,因此它将在第一次单击时暂停,然后将其设置为false。随后的单击将再次播放并再次将变量设置为true,依此类推。你可以这样做

var state = false;

function handleAction() {
    if (state == false) {
        // stuff for 'playnow' action

        state = true;
        return;
    }

    if (state == true) {
        // stuff for 'stop' action

        state = false;
        return;
    }
}
要实现这一点,您可以使用如下html:

 var play=false,
     button = document.getElementById('playbtn'),
     audiotag = document.getElementById('audio');

 button.addEventListener('click', function(){
       if(play){
          audiotag.pause()
          play=true;
       }else{
          audiotag.play();
          play=false;
       }
 })
因此,您可以像上面那样添加音频html,并使用getElementById获取javascript中的每个元素。然后,附加一个事件侦听器来侦听click事件,并调用匿名函数处理程序。在该函数中,您可以直接在音频对象上使用本机播放和暂停方法,在音频播放时停止播放,然后在停止时再次播放


您还可以向音频标签添加其他属性,以便在页面加载后立即开始播放。单击按钮时,play变量设置为true,因此它将在第一次单击时暂停,然后将其设置为false。随后的单击将再次播放并再次将变量设置为true,依此类推。你可以这样做

var state = false;

function handleAction() {
    if (state == false) {
        // stuff for 'playnow' action

        state = true;
        return;
    }

    if (state == true) {
        // stuff for 'stop' action

        state = false;
        return;
    }
}
要实现这一点,您可以使用如下html:

 var play=false,
     button = document.getElementById('playbtn'),
     audiotag = document.getElementById('audio');

 button.addEventListener('click', function(){
       if(play){
          audiotag.pause()
          play=true;
       }else{
          audiotag.play();
          play=false;
       }
 })
因此,您可以像上面那样添加音频html,并使用getElementById获取javascript中的每个元素。然后,附加一个事件侦听器来侦听click事件,并调用匿名函数处理程序。在该函数中,您可以直接在音频对象上使用本机播放和暂停方法,在音频播放时停止播放,然后在停止时再次播放


您还可以向音频标签添加其他属性,以便在页面加载后立即开始播放。单击按钮时,play变量设置为true,因此它将在第一次单击时暂停,然后将其设置为false。随后的单击将再次播放该变量并再次将该变量设置为true,依此类推,声明一个全局变量并根据传递的内容进行交换:

<div id="audioplayer">
    <button id="playbtn">play</button>
    <audio id="audiotag" src="path/to/audiofile"></audio>
</div>

声明全局变量并根据传递的内容进行交换:

<div id="audioplayer">
    <button id="playbtn">play</button>
    <audio id="audiotag" src="path/to/audiofile"></audio>
</div>

声明全局变量并根据传递的内容进行交换:

<div id="audioplayer">
    <button id="playbtn">play</button>
    <audio id="audiotag" src="path/to/audiofile"></audio>
</div>

声明全局变量并根据传递的内容进行交换:

<div id="audioplayer">
    <button id="playbtn">play</button>
    <audio id="audiotag" src="path/to/audiofile"></audio>
</div>
请听我回答这个问题

让我们创建一个名为toggle的函数,用于指定每隔单击一次的操作

var switch = "playnow";

function handleAction(a) {
    if a === switch {
      alert(a);
    }
    else {
      alert(a);
      switch = a;
    } 
}
然后,我们将像这样设置单击处理程序

var toggle = function (a, b) {
    var togg = false;
    return function () {
        // passes return value back to caller
        return (togg = !togg) ? a() : b();
    };
};
button.addEventListener('click', toggle(function () {
    //play now logic
}, function () { 
    // stop logic
}));
单击处理程序现在会在每次单击时交替使用第一个和第二个函数。

请参见我的问题解答

让我们创建一个名为toggle的函数,用于指定每隔单击一次的操作

var switch = "playnow";

function handleAction(a) {
    if a === switch {
      alert(a);
    }
    else {
      alert(a);
      switch = a;
    } 
}
然后,我们将像这样设置单击处理程序

var toggle = function (a, b) {
    var togg = false;
    return function () {
        // passes return value back to caller
        return (togg = !togg) ? a() : b();
    };
};
button.addEventListener('click', toggle(function () {
    //play now logic
}, function () { 
    // stop logic
}));
单击处理程序现在会在每次单击时交替使用第一个和第二个函数。

请参见我的问题解答

让我们创建一个名为toggle的函数,用于指定每隔单击一次的操作

var switch = "playnow";

function handleAction(a) {
    if a === switch {
      alert(a);
    }
    else {
      alert(a);
      switch = a;
    } 
}
然后,我们将像这样设置单击处理程序

var toggle = function (a, b) {
    var togg = false;
    return function () {
        // passes return value back to caller
        return (togg = !togg) ? a() : b();
    };
};
button.addEventListener('click', toggle(function () {
    //play now logic
}, function () { 
    // stop logic
}));
单击处理程序现在会在每次单击时交替使用第一个和第二个函数。

请参见我的问题解答

让我们创建一个名为toggle的函数,用于指定每隔单击一次的操作

var switch = "playnow";

function handleAction(a) {
    if a === switch {
      alert(a);
    }
    else {
      alert(a);
      switch = a;
    } 
}
然后,我们将像这样设置单击处理程序

var toggle = function (a, b) {
    var togg = false;
    return function () {
        // passes return value back to caller
        return (togg = !togg) ? a() : b();
    };
};
button.addEventListener('click', toggle(function () {
    //play now logic
}, function () { 
    // stop logic
}));

单击处理程序现在在每次单击时交替执行第一个和第二个功能。

Tyr为您提供了解决问题的答案。下面是一些可以帮助您设计更好代码的注释

如果你的网页上有一个大的动画和一个按钮,你的代码就完美无缺了,保持代码简单是个好主意。但是如果你有这样的东西

var toggle = function (a, b) {
    var togg = false;
    return function () {
        // passes return value back to caller
        return (togg = !togg) ? a() : b();
    };
};
button.addEventListener('click', toggle(function () {
    //play now logic
}, function () { 
    // stop logic
}));
这确实是名副其实。要在代码中使用它,请编写代理函数:

function HandleAnimation(animation, play) {
  if(play) ... // playnow
  else ... // stop
}

//如果你增强了你的网站,你只需要修改这个代码。
//无论更改如何,HandleAnimation都保持不变。
var animationStatus={}
功能转换为动画(动画)