Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Background-image Определение (https://javascript.ru/forum/misc/40087-background-image-opredelenie.html)

feniks7 23.07.2013 16:23

Background-image Определение
 
Можно ли посредствами JS узнать какой в ксс прописан background-image элемента, при нажатии на него?
У меня есть блок с картинкой(фоновой), поверх нее спан с текстом. Более того все это в таблице... Весь элемент - ссылка. Нужно выцепить оттуда путь картинки и добавить в переменную JS.

Для понятности того с чем я имею дело вот так задаются эти блоки:

<td valign="top" width="50%" id="bx_2097971167_7950" align="center" class="modern">

			<table cellpadding="0" cellspacing="0" border="0" align="center">
				<tr>
					<td valign="top">
					<a id="m_ADRIA" href="#" class="items">
					
					<div class="item" style="background-image:url(/upload/iblock/9ce/9ce408c4929f26718a4a791b7eff455c.jpg);">
										<div class="descr_cont">


					<div class="descr">
					<div class="preview_text">
											</div>
					</div>

					<div class="name">
					<h3>ADRIA</h3>
											</div>
					<div class="name prices" style="margin-left:190px;">
					<h3>Array </h3>
					</div>

					</div>
					</div>
					</a>
					</td>
				</tr>
			</table>

														</td>


Обращаться к блоку можно через класс .item далее использовать this.
Только не знаю как выцепить путь имейджа

danik.js 23.07.2013 16:32

function getStyle = (function(){
    return window.getComputedStyle ? getComputedStyle : function(el) {
        return el.currentStyle;
    };
})();
var uri = getStyle(document.body).backgroundImage;
// дальше регуляркой или хз как.

ОлегА 23.07.2013 16:32

$(function(){
   alert( $('td .item').css('background-image') )
})

feniks7 23.07.2013 16:43

ОлегА, пробовал подобную структуру, только через this, после обращения к классу. Не работает.

$( '.items' ).click(function(){

var this_img = this.css('background-image');
$( '#image' ).css('background', this_img);

return false;
});

ОлегА 23.07.2013 16:48

feniks7, так у вас this не обернут в $() так кончено не будет работать, вот

$( '.items' ).click(function(){

var this_img = $(this).find('.item').css('background-image');
$( '#image' ).css('background', this_img);

return false;
});

feniks7 23.07.2013 16:51

ОлегА,
Спасибо огромное. Чтото под конец рабочего дня совсем мозги не работают. Сидел с этим кодом без $ уже часа полтора, никак не мог понять что не так...


Часовой пояс GMT +3, время: 10:50.