увеличить текущее верхнее значение на 3 в jquery

0

Я пытаюсь увеличить текущее верхнее значение на 3 в javascript/jquery, но ничего не работает.

Вот почему:

$('#searchInput').css('top', $('#searchInput').css('top')+3);

дает мне -22px3

$('#searchInput').css('top', $('#searchInput').css('top')+'3px');

дает мне -22px3px

Я хочу -19px, но я не могу сделать -19px потому что тогда я добавлю 3 снова и снова и снова.

Как я могу это сделать правильно?

Теги:

5 ответов

1
Лучший ответ

вам нужно проанализировать текущее верхнее значение на целое число или float, а затем добавить 3 и concat px как строку

попробуйте вот так:

var x = $('#searchInput').css('top');
 $('#searchInput').css('top',parseFloat(x)+3+"px");

Демо: http://jsfiddle.net/a6NJk/654/

  • 0
    Спасибо, это работает, но все идет очень негативно, мне нужно, чтобы это было возможно.
  • 0
    скажем, у вас есть текущая вершина -22 после нажатия на приращение, какое значение следующей вершины вы ожидали?
Показать ещё 3 комментария
1

Если ваша версия jQuery превышает 1.6, вы можете использовать += вот так, я считаю:

$('#searchInput').css('top', '+=3');

В противном случае вам нужно будет сделать что-то вроде этого:

var t = $('#searchInput').css('top');
$('#searchInput').css('top', t + 3 + 'px');
1

Вы можете попытаться проанализировать свое значение, используя parseInt() здесь:

$('#searchInput').css('top', parseInt($('#searchInput').css('top'), 10) + 3 + 'px');
  • 0
    Спасибо, это работает, но это в целом отрицательно. Мне нужно, чтобы это пошло в массовом порядке.
0

Вы можете сделать это

$('#searchInput').css('top', parseInt($('#searchInput').css('top'), 10) + 3);
0
$('#searchInput').css( "top", "+=3" );

должен сделать трюк

Ещё вопросы

Сообщество Overcoder
Наверх
Меню