[英]jQuery Global Variable in Each Statement
因此,我正在努力做到这一点,以便可以在整个文档中使用jQuery在.each()语句中全局创建一个变量。
我要放置“ var previous = item.channel.display_name”的位置是我要创建的变量。
码:
jQuery(function(){
var streams = null;
jQuery.getJSON("https://api.twitch.tv/kraken/search/streams?q=path%20of%20exile&callback=?", function (data) {
streams = data.streams;
jQuery("#next").show();
jQuery("#prev").show();
jQuery("#next").click();
});
var globalCnt = 0;
jQuery("#next").click(function() {
var localCnt = 0;
var itemsToShow = 1;
jQuery.each(streams, function (index, item) {
localCnt++;
if(localCnt > globalCnt && itemsToShow > 0) {
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 + '" bgcolor="#000000"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="allowNetworking" value="all" /><param name="movie" value="http://www.twitch.tv/widgets/live_embed_player.swf" /><param name="flashvars" value="hostname=www.twitch.tv&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 +'&popout_chat=true" height="378" width="350"></iframe>');
globalCnt++;
itemsToShow--;
var previous = item.channel.display_name;
}
});
if(itemsToShow > 0)
jQuery("#showBtn").hide();
});
jQuery("#prev").click(function() {
var localCnt = 0;
var itemsToShow = 1;
jQuery.each(streams, function (index, item) {
localCnt++;
if(localCnt > globalCnt && itemsToShow > 0) {
jQuery("#content").empty();
document.write(previous);
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=' + previous + '&auto_play=false&start_volume=25" /></object><iframe frameborder="0" scrolling="no" id="chat_embed" src="http://twitch.tv/chat/embed?channel=' + previous +'&popout_chat=true" height="378" width="350"></iframe>');
globalCnt++;
itemsToShow--;
}
});
if(itemsToShow > 0)
jQuery("#showBtn").hide();
});
});
创建全局变量没有错,但是如果您想正确地进行操作,则必须确定某些事情。
如果可能,仅添加一个全局变量,然后将所有代码包装在该变量上。 创建许多全局变量不是一个好主意。
对于您的情况,您应该创建类似以下内容的方法:var myApp = myApp || {}也就是说:myApp等于myApp(如果它已经存在,或者如果myApp先前不存在,则myApp将为空对象。
然后,此行:var previous = item.channel.display_name;
将变为:myApp.previous = item.channel.display_name。
我不是在宽恕全局变量,但是如果您想在另一个范围内创建一个全局变量,可以将其添加到window
对象中:
window.globalVal = "foo";
window
是指向其自身的全局对象的属性。 向其添加属性等同于创建全局变量。
因此,对于您的情况,您可以
window.previous = item.channel.display_name;
然后可以从任何地方访问上一个-当然,假设它没有被遮挡。 最后一点,如果我没有提到全局变量通常不是一个好主意,那我会被忽略。 谨慎使用它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.