2012-06-21 2 views
2

Я думаю, что мне не хватает чего-то действительно очевидного здесь ... должно быть ... но по какой-то причине я не могу заставить свой прогрессбар отобразить значение, установленное в атрибуте!jQuery progressbar значение не установлено

вот мой HTML:

<div class="progressBar" data-value="58"></div> 

и JS:

$(function() { 
    $('.progressBar').each(function() { 
     $(this).progressbar(); 
     //var value = $(this).attr('data-value'); 
     //alert(value); 
     $(this).progressbar('option', 'value', $(this).attr('data-value')); 
    }); 
}); 

Он отображает строку, но не показывает значение (то есть значение = 0). Если я жестко задаю значение в js, он показывает штраф. Если я раскомментирую значение переменной и строку предупреждения, я получаю предупреждение со значением. Что мне не хватает?

ответ

4

Вы должны разобрать ваш Attr, как межд:

$(this).progressbar('option', "value", parseInt($(this).attr('data-value'), 10)); 
+0

+1, но просто нужно понять, что это за '10'? –

+1

Это синтаксический анализ целого числа в базе 10. Если вы его не поместите, у вас могут быть неожиданные результаты. –

+0

Например, введите 'parseInt ('08')' в консоли. –

1

попробовать это:

$(this).progressbar('option', 'value', parseInt($(this).data('value'),10)); 
+0

+1, но просто интересно, что такое 10? –

+0

@Tats_innit благодарит bruv, это целое число, которое представляет собой radix, но это необязательно. https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseInt – undefined

+1

CHeers bruv для ссылки :) –

2

работает демоhttp://jsfiddle.net/WQnqS/илиhttp://jsfiddle.net/WQnqS/1/

код

$(function() { 
    $('.progressBar').each(function() { 
     $(this).progressbar(); 
     //var value = $(this).attr('data-value'); 
     //alert(value); 
     $(this).progressbar('option', 'value', parseInt($(this).attr('data-value'))); 
    }); 
});​ 
0

В случае, мы не получим первую попытку. попробуйте вот так:

$(function() { 
    $('.progressBar').each(function() { 
    var thisValue = parseInt($(this).attr('data-value')); 
    $(this).progressbar({ value: thisValue }); 
    }); 
}); 
Смежные вопросы