jQuery - 函数全局变量

时间:2013-11-30 00:47:48

标签: javascript jquery

基本上,函数atm使得在加载脚本时它会显示下一个和上一个按钮以及一个流。然后,如果您单击下一步,它将带您进入列表中的第二个流。通过这样做,它将计数器增加1,然后使用计数器调用函数showStream(counter)。我想这样做,以便当你调用该函数时,如果你点击上一个并且计数器小于0,例如-1,它将只显示流#100,如果你再次点击前一个,它将显示#99。此外,我需要确保如果你通过按下它会传递#100它会带你到数字1.想想它好像没有开始也没有结束,只是它们的巨大循环。

有什么想法吗?

功能:

  function showStream(videoIndexToShow) {
      if(videoIndexToShow >= streams.length-1) {
         jQuery("#next").hide();
       }
       else {
        jQuery("#next").show();
       }
       if(videoIndexToShow <= 0) {
         jQuery("#prev").show();
       } else {
        jQuery("#prev").show();
       }
       jQuery.each(streams, function (index, item) {  
           // $stream = <stream number>;
           // if(index == $stream){ 
           // } else {
           if(index == videoIndexToShow) {
            console.log(videoIndexToShow, index);
           jQuery("#content").empty();
           jQuery("#content").html('<object style="margin-left:0.5%;" type="application/x-shockwave-flash" height="378" width="620" id="live_embed_player_flash" data="http://www.twitch.tv/widgets/live_embed_player.swf?channel=' + item.channel.display_name+ '&auto_play=false&start_volume=25" /></object><iframe frameborder="0" scrolling="no" id="chat_embed" src="http://twitch.tv/chat/embed?channel=' + item.channel.display_name +'&amp;popout_chat=true" height="378" width="350"></iframe>');
           }
           // }
      });
  }

其他代码:

  var streams = null;
  jQuery.getJSON("https://api.twitch.tv/kraken/search/streams?q=path%20of%20exile&limit=100&callback=?", function (data) {
      streams =  data.streams;
      showStream(0);
  });

  var globalCnt = 0;
  jQuery("#next").click(function() {
      showStream(++globalCnt);
  });
  jQuery("#prev").click(function() {
      showStream(--globalCnt);
  });

如果它可以使它成为100而不是只在它通过streams.length时它会重新启动为1或者如果它在0并且你按下它之前它会带你到streams.length。不确定是否可能:)

但是我有什么想法呢?

点击活动:

  jQuery("#prev").click(function() {
      globalCnt = globalCnt + 1 > 100 ? 1 : --globalCnt;
      showStream(globalCnt);
  });

1 个答案:

答案 0 :(得分:1)

在致电showStream

之前,只需使用三元组
globalCnt = globalCnt + 1 > 100 ? 1 : ++globalCnt;

为了更少:

globalCnt = globalCnt - 1 < 0 ? 100 : --globalCnt;