Изменение атрибута с помощью jQuery не работает в Chrome - PullRequest
1 голос
/ 22 декабря 2009

У меня есть этот jsbin http://jsbin.com/ehidi. Я хотел изменить атрибут данных и атрибут значения param [name = "movie"]. Кажется, он работает в Firefox, но не в Google Chrome или Safari (webkit?).

Спасибо!

1 Ответ

3 голосов
/ 22 декабря 2009

У вас две проблемы.

  1. Вы установили неправильный атрибут на param[name="movie"]. Вы устанавливали атрибуты data вместо атрибута value.
  2. Ваша проблема не обязательно является jQuery; это поведение флэш-плеера в WebKit. Не похоже, что проигрыватель Flash в WebKit автоматически перезагружается при изменении базового объекта DOM.

Попробуйте этот код. Он перезаписывает правильный атрибут и эффективно перезагружает флеш-плеер, удаляя, а затем повторно добавляя объект флеш-плеера из и в DOM.

jQuery('#video-page-wrapper li a').click(function() {
  var url = "http://youtube.com/v/" + jQuery(this).attr("id");
  jQuery('.video-page object').attr({ data: url });
  jQuery('.video-page param[name="movie"]').attr({ value: url });
  jQuery('.video-page object').remove().appendTo('.video-page');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...