切换嵌入循环

时间:2012-06-21 09:08:47

标签: javascript loops embed toggle

通过点击链接/图像,我试图想出一种能够在当前播放后拥有嵌入式对象循环或不再循环的方法。我需要它不要改变页面,所以当前的歌曲一直在播放。

到目前为止,我已尝试使用Javascript GetElementByName设置loop = true / false,而默认设置为true。

 <a href="javascript:void(0)" title="To be implimented"><IMG ID=mode SRC=repeat.gif HEIGHT=22 onclick="PlayerMode()">
<script type="text/javascript">

var L=0;
function PlayerMode()
  {
  if(L==0){
  document.getElementById("playmode").loop="true"
  document.getElementById("mode").src="repeat.gif";
  L++;
  }

  else{
  document.getElementById("playmode").loop="false"
  document.getElementById("mode").src="repeatoff.gif";
  L--;
  }}
</script>

1 个答案:

答案 0 :(得分:0)

如果您想要一个触发JavaScript的链接但之后不更改页面,请确保您的onclick代码返回false。如果JavaScript被禁用或不受支持(无论出于何种原因),使用简单的“#”作为链接的href将避免任何不良影响或错误消息。

<a href="#" onclick="PlayerMode(); return false;">...</a>

作为替代方案,你也可以保留你的代码并让你的函数在最后调用return false;(参见最后一个剪辑):

<a href="#" onclick="PlayerMode();">...</a>

进一步优化,我将使用以下代码(使用全局变量保存):

function toggleLoop() {
    var player = document.getElementById('playmode');
    document.getElementById('mode').src = (player.loop = !player.loop) ? 'repeat.gif' : 'repeatoff.gif';
    return false;
}

请注意,在当前代码L中,考虑到播放器已经循环,其初始值应为1。否则,你基本上会在第一次点击时启用循环(这不会改变任何东西)。