嘿伙计们, 我不是一个铁杆编码员,所以我在这里不了解这些基础知识。
假设我的页面上有多个 '(包含通过 swfobject 的 Youtube 视频)。 所有这些对象都有一个唯一的 ID,如 ytplayer_12、ytplayer_2、ytplayer_56 等。
我需要使用 jquery 运行所有 ytplayer_ 并向它们添加一个 EventListener。
效果很好!我只是想知道我是否在正确的位置声明了变量 ($ytid, ytid) - 在 onYouTubePlayerReady()
函数之外?或者我应该在函数内部声明变量?或者甚至在每个循环内部?
var $ytid = '',
ytid = '';
function onYouTubePlayerReady() {
$('object[id^="ytplayer_"]').each(function() {
$ytid = $(this).attr('id');
ytid = document.getElementById($ytid);
ytid.addEventListener("onStateChange", "foo");
});
};
我只是好奇在这种情况下什么更好,以及我现在做的是否正确? 感谢您提供的信息和帮助?
最佳答案
在全局范围内声明变量是个坏主意。将它们移动到函数作用域中。
function onYouTubePlayerReady() {
var $ytid = '', ytid = '';
$('object[id^="ytplayer_"]').each(function() {
$ytid = $(this).attr('id');
ytid = document.getElementById($ytid);
ytid.addEventListener("onStateChange", "foo");
});
};
你可以摆脱它们:
function onYouTubePlayerReady() {
$('object[id^="ytplayer_"]').each(function() {
this.addEventListener("onStateChange", "foo");
});
};
关于javascript jquery : Overwriting variables - how? 性能更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5027924/