2011-11-04 2 views
0

다음 코드가 있으며 jQuery UI 슬라이더에 문제가 있습니다. 내 문제는 무엇입니까범위, 이상한 동작을 사용하는 jQuery UI 슬라이더

슬라이더가 올바르게 렌더링되는 동안 매우 이상하게 작동합니다. 무슨 뜻이야? 핸들러에 렌더링하는 대신 하나만 렌더링하고 슬라이더는 값 70 마녀가 배열에 두 번째 값이 될 때까지 슬라이드 할 수 있습니다. 어떤 아이디어가 그 문제를 해결하는 방법에 대한 제발?

여기 내 코드입니다 :

HTML :

<td valign="top"> 
    <input 
     class="slider_hidden" 
     type="hidden" 
     name="field_name" 
     value="10,70" 
     id="slider_hidden" 
     data-disabled="0" 
     data-min="0" 
     data-max="100" 
     data-orientation="horizontal" 
     data-step="1" 
     data-range="1" 
    /> 
    <div class="slider"></div> 
    <br /> 
    <span class="description"><?php echo $description; ?></span> 
</td> 

자바 스크립트를 모든 값이 숨겨진 필드에서 제대로 자궁강 것을

$(document).ready(
    function() 
    { 
     $(".slider").each(
      function() 
      { 
       var val = $(this).prev('input.slider_hidden').val(); 
       var min = $(this).prev('input.slider_hidden').data('min'); 
       var max = $(this).prev('input.slider_hidden').data('max'); 
       var step = $(this).prev('input.slider_hidden').data('step'); 
       var slide_disabled = ($(this).prev('input.slider_hidden').data('disabled') == "1" ? true : false); 
       var orientation = $(this).prev('input.slider_hidden').data('orientation'); 
       var range = ($(this).prev('input.slider_hidden').data('range') == "1" ? true : false); 

       $(this).slider(
        { 
         min: min, 
        max: max, 
         step: step, 
         disabled: slide_disabled, 
         orientation: orientation, 
         slide: function(e, ui) 
         { 
          console.log(ui); 
          $(this).prev('input.slider_hidden').val(ui.value); 
         } 
        } 
       ); 

       $(this).slider('option', 'range', range); 

       if(range == true) 
       { 
        var s = val.split(','); 
        $(this).slider("option", "values", s); 
       } 
       else 
       { 
        $(this).slider("option", "value", val); 
       } 
      } 
     ); 
    } 
); 

참고.

+0

아니다 (이)'(그리고'.prev() ')을 사용하여 코드를 가속화 할 수 있습니다. –

+0

"min"범위를 사용하는 것 같습니다. 어떤 생각이든, 아니면 내가 뭘 잘못 생각해도 될까요? :? –

답변

2

오랜 조사 끝에 초기화 된 후 values 또는 value으로 설정할 수 있습니다! 이 작업을하는 것보다

그래서 내가 찾은 전혀 다른 솔루션 : http://jsfiddle.net/7YVVY/1/

그것은 작동하지만, 우아한 : 당신은 적어도`$를 저장해야

+0

하나의 업 그레 이드 당신의 시도 :) 나는 코드를 읽을 것이고 내가 올바른 경우 답변으로 표시합니다 :) 고마워 시스코! :) –

+0

당신은 최고입니다 !!!!!! 고마워요 :) –

+0

@MerianosNikos : 코드를 좀 더 간단하게 (그리고 더 빨리) 업데이트했습니다. http://jsfiddle.net/7YVVY/3/ 기ume이 마음에 들지 않을 것이라고 확신합니다. ;) –

관련 문제