2011-01-23 2 views
0

im работает с jquery. Я добавил изображение в свой div-элемент. он отлично работает. Я хочу изменить свойство css (например, max-heigth или width и т. Д.) С помощью js-функции.JQuery изменение свойства css после добавления изображения

но ничего работает ... я попробовал с исправлением изображений на странице (withouth добавления прежде, строг в HTML ..) и это работает ...

делает кто-нибудь имеет идею ??

моя функция выглядит следующим образом:

function makeBigger() { 

var origHeight = $("#articlePicture").css("max-height"); 
var newHeight = parseInt(origHeight.replace("px", "")); 

newHeight+=25; 
newHeight+="px"; 

$("#articlePicture").css("max-height", newHeight); 
} 

спасибо!

Редактировать: Важно сказать: он не работает только с изображением приложения, firebug и т. Д. Все пробовал - работает!

edit2: добавление-функция (вид легкой версии этого ..):

function appendThis(artikelNumber, pictureToAppend) { 
     img="<img src='"+pictureToAppend+"' alt='articlePicture' id='articlePicture' class='articlePicture' />"; 
     $('.article'+artikelNumber+'Text').append(img); 
    } 
+1

ли работа, если вы просто статически задать значение, например $ ("# articlePicture"). css ("max-height", "100px"); – duncan

+0

Нет, он даже не работает с чем-то вроде $ ("# articlePicture"). Css ("display", "none"); Я думаю, что это как-то проблема с добавлением ... – eav

+0

Вы посмотрели на высоту и ширину div? Удерживает ли вас от роста своего размера или, может быть, родителя div? – awright18

ответ

1

В вашей функции appendThis есть две вещи, которые могут послужить причиной ее неработоспособности.

  1. Каждый раз, когда вы запускаете эту функцию (и добавляете новое изображение), вы назначаете тот же идентификатор этому изображению. Это нехорошо, идентификаторы должны быть уникальными на странице. Если у вас несколько элементов с одинаковым идентификатором, jQuery не сможет их выбрать. Вместо этого вы должны использовать атрибут class. Таким образом, вы можете выбрать такие изображения: $('img.articlePicture')

  2. Вы не объявили переменную img, что делает ее неявной глобальной. Этого следует избегать, поскольку это может привести к неожиданным столкновениям имен.

Я установил оба вопроса ниже:

function appendThis(n, url) { 
    var img = '<img src="' + url + '" class="articlePicture" alt="Picture">'; 
    $('.article' + n + 'Text').append(img); 
} 

Кроме того, здесь оптимизированная версия вашей функции makeBigger:

function makeBigger() { 
    $("img.articlePicture").css('max-height', function(i,v) { 
     return parseInt(v, 10) + 25 + 'px'; 
    }); 
} 
+0

привет симе, я попробую. первая проблема известна, но на этой странице невозможно в любом случае добавить более 1 изображения. поэтому нет проблемы с идентификатором, до сих пор! Я не понял вашу вторую причину .. но я попробую ?! спасибо – eav

+0

Редактировать: ваша вторая причина: я думаю, я сделал это, но мне пришлось очистить всю функцию, поэтому я забыл объявление переменной img. но это внутри моей функции .. я уверен! – eav

+0

@emre Я мог бы решить вашу проблему, если бы смог работать с демо-версией. Это возможно? –

0

, если вы хотите, чтобы это было больше, просто изменить высоту или установить мин-высоту. max-height не сделает его больше, он просто не позволит ему расти за эту высоту.

+0

Я знаю, какая минимальная высота и т. Д. Означает ... Картинка определенно больше ... Во всяком случае, без добавления ее работы ..., почему бы не работать с добавлением ?! вот главная проблема! – eav

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