2012-06-05 2 views
2

jquery 캘린더 작업을하고 있지만 페이지로드시와 클릭시 둘 다에 함수를 호출해야합니다. 페이지가 처음으로로드 될 때 자동으로 함수를 호출하고 실행해야하며 두 번째 이후에는 클릭을 통해 호출해야합니다. 그것은 가능합니까 ?? 그렇다면 제발 도와주세요.페이지에서 jquery 함수 호출 onload 및 onclick?

<script type="text/javascript"> 

    $(document).ready(function(){ 
     $("#fullDate").datepicker({ 

     showOn: "button", 
     buttonImage: "images/calender.jpg", 
     buttonImageOnly: true, 

     onClose: function(dateText, inst) { 
     $('#year').val(dateText.split('/')[2]); 
     $('#month').val(dateText.split('/')[0]); 
     $('#day').val(dateText.split('/')[1]); 
    } 


    }); 


}); 
</script> 

답변

1
$(document).ready(function(){ 
    $("#fullDate").datepicker({ 
    showOn: "button", 
    buttonImage: "images/calender.jpg", 
    buttonImageOnly: true, 

    onClose: function(dateText, inst) { 
     $('#year').val(dateText.split('/')[2]); 
     $('#month').val(dateText.split('/')[0]); 
     $('#day').val(dateText.split('/')[1]); 
    } 
    }); 
    $("#fullDate").datepicker("show"); // this will run once. 
}); 
+0

그래도 작동하지 않지만 뭔가 빠져 있습니다. 페이지가 자동으로 캘린더를 불러 오면 멋지지만 자동으로 사라집니다. 캘린더를 팝업 아웃 한 다음 사라지는 것은 매우 빠르며 사용자는 페이지로드시 캘린더를 볼 수 없습니다. 사용자는 클릭만으로 캘린더를 볼 수 있지만 첫 번째 기능은 자체 기능을 실행해야합니다. 짧게 말하면 시작에서 마지막 끝까지 클릭으로 발생하는 모든 프로세스는 클릭없이 자동으로 수행되어야합니다. 고맙습니다 –

+0

사용자가 볼 수 없게 캘린더 선택기를 표시하거나 숨길 필요가있는 이유가 확실하지 않습니다. 어떤 이점도 생각할 수 없습니다. 하지만'$ ("# fullDate")를 사용하십시오. datepicker ("hide");''show '바로 다음에. 재밌는 내 대답은 (추론 된) 질문에 대답하는 유일한 방법이지만, 아직 upvotes을 가져옵니다. – ahren

+0

나는 왜 내가 원하는 기능을 얻었는지 이것을 설명 할 것이다. uand meand like aahren ?? $ ("# fullDate"). datepicker ("show"). $ ("# fullDate"). 그렇다면 작동하지 않는 이유를 모르겠습니까 ?? –

0

로드하는 동안, 당신은 functionCallHere 그 이벤트라는 공통 기능의 이름을 클릭

$(element).click(function(){ 
    functionCallHere(); //call the function again 
}); 

에 대한 다음

//when window loads 
$(window).load(function(){ 
    functionCallHere(); 
}); 

//or when DOM is ready 
$(document).ready(function(){ 
    functionCallHere(); 
}); 

를 사용할 수 있습니다.

4

이름이 지정된 함수를 작성 시도하고 두 이벤트에 전화 : 또는 단지 doSomething를 호출, 콜백으로 익명 함수를 작성하는

function doSomething() { 
    // ... 
} 
$(document).ready(function() { doSomething() }); 
$(yourElem).on("click", function() { doSomething() }); 

, 당신은 또한 같은 함수 이름을 전달할 수 인수로 불필요한 익명 기능으로 메모리를 어지럽히 지 않고 약간의 성능 향상을 얻습니다.

+2

새로운 .on() 메서드를 사용하는 것이 더 좋습니다. –

+0

@Robert Smith 좋은 지적입니다. – hielsnoppe

+1

콜백 내에서 함수 호출을 래핑 할 필요가 없습니다. '$ (document) .ready (doSomething); '을 사용하십시오. – ahren