2012-04-10 6 views
1

Я видел кое-что действительно крутое на Yippyнагрузки динамический URL в IFRAME

Они загружающего URL в к IFRAME для быстрого просмотра. Я хотел бы сделать то же самое для своего веб-сайта. Я использую Бинг API, пример: JsFiddle

Я приложил IFRAME и DIV, чтобы вызвать событие загрузки:

<div class="blok"></div> 
<iframe class="ifram" src="" width="100" height="100"></iframe> 

И я попробовал это за событие:

$(".block").click(function() { 

$(".ifram").attr("src", (".desc a", this).text()); 
}); 

Не работает.

ответ

2

Там же около 6 вещей неправильно:

  1. Вы с помощью .click(), но результаты добавляются динамически, поэтому вам нужно использовать живой обработчик такой, как .on()
  2. Элемент .blok в HTML , но вы связываете событие .block
  3. вы пытаетесь установить ГКЗ каждый.ifram элемент
  4. Вы забыли $ перед вашим селектором
  5. Вы отдаете ваш селектор контекст самого элемента, но якорь вы хотите найти внутри одноуровневый
  6. Вы получаете доступ текста якоря, не href.

Следующий код должен делать то, что вы хотите:

$("body").on('click', '.blok', function() { 
    $(this).siblings(".ifram").attr("src", $(this).siblings('p.desc').find('a').attr('href')); 
}); 

jsFiddle: http://jsfiddle.net/aHCT5/18/

+0

Incredible. большое спасибо :) И спасибо за указание и объяснение в такой детали. – Youss

2

Похоже на синтаксическую ошибку.

$(".block").click(function() { 
    $(".ifram").attr("src", $(".desc a", this).text()); 
}); 

Вы забыли поставить «$» перед (".desc a", this).text().

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