2013-07-17 3 views
0

Используя jQuery, я создал простой лайтбокс, который загружает изображение при нажатии на миниатюру.Удаление части изображения src

Я пытаюсь заставить лайтбокс работать, сохраняя миниатюру src как переменную, из которой можно загрузить изображение главной галереи. Однако переменная нуждается в части «/ thumbs» удаления src, чтобы найти изображение большей галереи.

Я следил за многочисленными ответами, уже даваемыми вариантам этого вопроса, но ни одна из моих попыток подражать результатам, похоже, не работает.

я получил, насколько это:

$("#attractions-dave li a").live("click", function showAttraction(e){ 

var example = $(this).children('img').attr('src', $(this).children('img').attr('src').replace('/thumbs',''));  

}); 

Для справки, связанный с HTML является:

<ul id="attractions-dave"> 
<li> 
    <a href="../attractions/attractions.php"> 
    <img src="../images/photos/bouncy-castles/thumbs/happyclown.jpg" alt="happy clown castle" /> 
    </a> 
</li> 
</ul> 

После того, как я получил переменную, я использую его, чтобы установить фон image, используя следующий код:

$('#example').css('background-image', 'url(' + example + ')'); 

На данный момент код просто не добавляет элемент фона в элемент.

Я не получаю никаких ошибок с этим кодом, но ясно, что переменная (измененная миниатюра src) не распознается.

Если кто-нибудь может увидеть, где я ошибаюсь, тогда любая помощь будет высоко оценена.

+1

Какую версию jquery вы используете? 'live' больше не действует, так как v1.9 –

+0

В настоящее время используется 1.7.1. – Dave

+0

Пожалуйста, объясните более подробно, что именно ваша цель. Как только вы получите «новый» src без «/ thumbs» - вы хотите заменить изображение большого пальца на большой? Или вы хотите передать этот новый src другим функциям? – piotrb

ответ

2

example в коде является объектом JQuery. Вам необходимо:

var example = $(this).children('img').attr('src').replace('/thumbs',''); 
+0

Это все, спасибо. – Dave

2

Я думаю, что вам нужно, чтобы предотвратить поведение по умолчанию:

http://jsfiddle.net/eYJ7L/

$("#attractions-dave li a").live("click", function showAttraction(e) { 
    e.preventDefault(); 
    var example = $(this).children('img').attr('src', $(this).children('img').attr('src').replace('/thumbs', '')); 

}); 
+0

Боюсь, у меня нет успеха на моем конце. Помогло бы знать, что я использую переменную для установки фонового изображения с помощью следующего кода: $ ('# example'). Css ('background-image', 'url (' + example + ')'); – Dave

+0

Что вам поможет, если вы предоставите jsfiddle с соответствующим кодом HTML –

+0

Хорошо, я работаю над этим, дайте мне несколько минут. – Dave