2012-11-09 2 views
0

동적으로 내 슬라이더를 만들고 "슬라이드"이벤트 및 "정지"이벤트에서 비 동적 내용에 정의 된 함수를 호출하려고합니다. 슬라이더로 매번 생성 할 때 함수를 사용할 수는 있지만 중복 코드가 많은 것 같습니다.동적 jquery 슬라이더 외부에서 함수 호출

비 동적 기능

$(document).ready(function() { 
var converSecondsToMinutes; 

convertSecondsToMinutes = function(secondsEntered){ 
    var secondsEntered = secondsEntered; 

    var time = parseInt(secondsEntered,10); 
    time = time < 0 ? 0 : time; 

    var minutes = Math.floor(time/60); 
    var seconds = time % 60; 

    minutes = minutes < 9 ? "0"+minutes : minutes; 
    seconds = seconds < 9 ? "0"+seconds : seconds; 
    var newTime = minutes+":"+seconds 
    console.log(newTime); 
    return newTime 
} 
}); 

동적 jQuery를 슬라이더

<?php 
query... 
result... 
for(...){ 
?> 
<Script> 
$("#slider"+<?php echo $id; ?>).slider({ 
      animate: true , 
      value: 0, 
      min: 0, 
      //dynamic grab this 
      max: <?php echo $playtime_seconds; ?>, 
      step: 0.01, 
      start: function(event, ui) { 
       .... 
      }, 
      slide: function(event, ui) { 
       audio = .... 
       audio.currentTime = ui.value; 
       progress_seconds = parseFloat(audio.currentTime.toFixed(2)); 
       progress_seconds = $(function(){convertSecondsToMinutes(progress_seconds);}); 

       $('#progress_seconds'+<?php echo $id; ?>).html(progress_seconds); 

      }, 
      stop: function(event, ui) { 
       .... 
       } 
      } 

     }); 


    }); 

} 

내가 잘라 질문에 중요했다 코드의 부분을 붙여 넣습니다.

이것은 작동하지 않는 행입니다. $ ('# progress_seconds'+) .html (progress_seconds);

답변

1

내가 주석 후 내 댓글이 더 이상 의미하는 $을했다, 그래서 당신은 방금 편집하지 (함수() {코드의 일부가 필요하지, 그냥 사용해보십시오 : 코드에서

progress_seconds = converSecondsToMinutes(progress_seconds); 

그리고 맞춤법 오류를 . 나와 함께 실제 문제이며, Conver 유럽은 마지막에있다

을 $의 함수를 포장 할 필요도 없다 (문서) .ready()를 다음과 같이 선언 :

function convertSecondsToMinutes(secondsEntered) 
{ 
    var time = ... 
    ... 
} 
+0

죄송합니다, 여전히이 오류가 발생합니다 : Uncaught Refe renceError : convertSecondsToMinutes가 정의되지 않았습니다. – ImaginedDesign

+0

게시 한 스 니펫과 함수 선언을 모두 변환하도록 변경 했습니까? –

+0

네, 그냥 작동하지 않았다. 도와 줘서 고마워. – ImaginedDesign