2012-01-25 3 views
1

jsFiddle Полный код:http://jsfiddle.net/bvmdW/JQuery динамического выбора и элемент

Я использовал JQuery Embedly заменить ссылки на YouTube с миниатюрой и видео. Я скрываю часть видео, используя display:none в CSS. Сценарий Embedly будет динамически создавать следующий DOM в процессе:

<li id="1"> 
    <img rel="vidPreview-1" class="embedly" src="....."> 
    <div id="vidPreview-1" class="vidPreview"> iframe videos here </div> 
</li> 
<li id="1"> 
    <img rel="vidPreview-2" class="embedly" src="....."> 
    <div id="vidPreview-2" class="vidPreview"> iframe videos here </div> 
</li> 

Оба <img rel="vidPreview-X" и <div id="vidPreview-X динамически генерируются Embedly.

Теперь я также буду использовать плагин jQueryTools Overlay, чтобы всплывать скрытые видеоролики при нажатии на миниатюру. Я использовал:

$("img[rel]").live('click', function() { 
    $(this).overlay().load(); 
}); 

но, кажется, плагин Overlay не распознает live(). В Firebug говорится, что: uncaught exception: Could not find Overlay: vidPreview-X

Может кто-нибудь, пожалуйста, назовите меня, как сделать live() с наложением jQueryTools?

+2

На этой странице примера я обнаружил, что вы пропустили # в rel = "vidPreview-1". Пожалуйста, проверьте или забудьте отправить его здесь? – sathishkumar

ответ

2

В теге img вы пропустили # в атрибуте rel. Пожалуйста, добавьте # в значение rel attr.Проверьте еще раз.

<li id="1"> 
    <img rel="#vidPreview-1" class="embedly" src="....."> 
    <div id="vidPreview-1" class="vidPreview"> iframe videos here </div> </li> <li id="1"> 
    <img rel="#vidPreview-2" class="embedly" src="....."> 
    <div id="vidPreview-2" class="vidPreview"> iframe videos here </div> </li> 
+0

Спасибо за помощь, теперь он работает в современных браузерах. Тем не менее, он не будет работать в IE8 и IE7, он все еще показывает и ошибки: 'Ошибка: исключение брошено и не поймано' – Ramil

0

Я не уверен, но попытаюсь использовать функцию делегата http://api.jquery.com/delegate/ Я столкнулся со странным поведением live несколько раз.

+1

«Начиная с jQuery 1.7, метод .live() устарел. Используйте .on() для присоединения обработчиков событий. Пользователи более старых версий jQuery должны использовать .delegate(), предпочитая .live()." http://api.jquery.com/live/ – Stefan

Смежные вопросы