Chcę dodać trochę kodu HTML na końcu każdego linku na youtube, aby otworzyć odtwarzacz w liteboksie. To jest mój kod do tej pory:Funkcja nie wywoływania w zdarzeniu onclick
$(document).ready(function() {
var valid_url = new RegExp('youtube\.com\/.*v=([a-zA-Z0-9_-]+)');
var image_data = 'base64 encoded image';
init();
function init() {
$('a').each(function() {
if (valid_url.test($(this).attr('href'))) {
$(this).after(' <img src="' + image_data + '" onclick="open_litebox(\'hi\');" />');
}
});
}
function open_litebox(param) {
alert(param);
}
});
To działa do momentu, w którym wstrzykuje niektóre HTML po link youtube, tak:
<img src="base 64 data" onclick="open_litebox('hi')">
Ale gdy klikam to funkcja open_litebox()
nie zostać wezwanym. Patrząc w konsoli błędów, widzę błąd, który mówi: open_litebox is not defined
, ale go zdefiniowałem.
Nie mam pojęcia, co tu jest nie tak, czy ktoś może mi pomóc?
Dzięki.
** Znacznie ** lepiej ** nie ** uczynić funkcji globalną i podłączyć ją do nowoczesnej obsługi zdarzeń, a nie do "obsługi plików onxyz". –