#jquery
#jquery
Вопрос:
Эй, ребята, у меня проблема с повторным использованием кода:
YT_ready(function() {
$("iframe[id]").each(function() {
var identifier = this.id;
var frameID = getFrame(identifier);
if (frameID) { //If the frame exists
players[frameID] = new YT.Player(, {
events: {
'onStateChange': onPlayerStateChange
}
});
}
});
});
попробовал это..
slide('code', function() {
YT_ready();
});
Комментарии:
1. Какую именно часть кода вы хотите повторно использовать? Инициализация проигрывателя?
2. Попробуйте
function YT_ready() {};
вместо анонимной (?) функции, которая у вас есть сейчас.3. Это в jQuery, поэтому оно не будет работать, если я использую функцию YT_ready();
4. YT_ready(), похоже, исходит из API YouTube. Парень установил анонимную функцию в качестве обработчика и хочет повторно использовать тот же обработчик в другом месте, но не может ссылаться на него, потому что у функции нет имени.
5. О-о-ха-ха! Я исправил это, спасибо @MKaama
Ответ №1:
Попробуйте это:
var handler=function(thi) {
$("iframe[id]").each(function() {
var identifier = thi.id;
var frameID = getFrame(identifier);
if (frameID) { //If the frame exists
players[frameID] = new YT.Player(, {
events: {
'onStateChange': onPlayerStateChange
}
});
}
};
YT_ready(function(){handler(this)});
slide('code', function(){handler(this)});
Мне пришлось добавить некоторое обертывание, чтобы получить правильное значение этого в обработчике.