2010-06-02 1 views
1

У меня есть следующий фрагмент;Fancybox - получение html из элемента на основе id?

$("a.lightbox_image").each(function() { 
     $(this).fancybox({ 
      'transitionIn': 'elastic', 
      'transitionOut': 'elastic', 
      'speedIn': 600, 
      'speedOut': 200, 
      'content': $('#lightbox_image_content_'+this.id.replace('lightbox_image_','')).html() 
     }); 
    }); 

Но выше не получает содержание от элемента ссылается в собственности контента - то, что я делаю не так?

+1

Трудно сказать. Я бы рекомендовал начать отладку результата операции 'replace()' и проверить, действительно ли этот элемент существует. –

+0

Что вы пытаетесь сделать? Откройте причудливый бокс с различным контентом, который соответствует кликнутой ссылке? – Zuul

+0

Zuul: Excatly. Содержимое по умолчанию (если я удаляю свойство содержимого) - это изображение с заголовком - основным материалом. Но я хочу, чтобы я немного отличался от макета лайтбокса (ссылка выше картинки, 2 абзаца текста ниже картинки и т. Д.). Pekka: Элемент excist (проверен и проверен дважды) и работает метод замены. – kastru

ответ

1

необходимости замены функции требуется регулярное выражение, так что попробуйте replace(/lightbox_image_/, '') и попытаться получить val() вместо Проблема html()

$("a.lightbox_image").each(function() { 
    var id = "lightbox_image_content_"+this.id.replace(/lightbox_image_/,''); 
    var content = $("#"+id).html(); 
     $(this).fancybox({ 
      'transitionIn': 'elastic', 
      'transitionOut': 'elastic', 
      'speedIn': 600, 
      'speedOut': 200, 
      'content': content; 
     }); 
    }); 
+0

Функция замены работает нормально (протестировала ее), но для двойной проверки я пробовал свой код выше, и результат такой же, как у меня - он не работал i 'f fear :-( – kastru

+0

Вы тоже пробовали с val() вместо html() – streetparade

+0

Да - не работали ни – kastru

1

решена. Оказывается, не разрешено иметь {} в this.id. После удаления из идентификатора он работал.