JS/jQuery TypeError: jQuery(...).datepicker는 함수가 아닙니다.
이틀 동안 이 일에 머리를 긁적거리고 있는데, 뭔가 간단한 걸 놓치고 있는 게 분명한데 왜 작동이 안 되는지 아무리 생각해도 모르겠어요.
WordPress 사이트에서 아래 스크립트를 사용하여 ContactForm7 양식의 날짜 선택 필드 내에서 특정 날짜를 비활성화하려고 합니다.
동일한 ID를 사용하여 간단한 입력 필드를 사용하여 jsfiddle에 스크립트를 로드할 수 있으며 완벽하게 작동합니다.그러나 사이트에 추가하면 날짜가 비활성화되지 않고 JS 오류 콘솔에 "jQuery(...).datepicker is not function"이라는 오류가 나타납니다.
는 그것을 의 제 my header.php
「」의 바로 에 있습니다.wp_head()
및 그 바로 에 있습니다.</head>
날짜 선택 아이디dpick
이 시나리오에서 사용되는 것처럼요.
는 '어느 정도', '어느 정도', '어느 정도'를 할 때 요.$
WordPress 른른ery jQuery theysoso 。 WordPress 른 、 jQuery 、 sososososososo word word word word word word word word word word word word word word word word대신할것을제안했습니다.$
jQuery
아아아 ( 본아아아아아............... 。
var unavailableDates = ["1-9-2013", "2-9-2013", "3-9-2013", "4-9-2013", "5-9-2013"];
function unavailable(date) {
dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();
if (jQuery.inArray(dmy, unavailableDates) == -1) {
return [true, ""];
} else {
return [false, "", "Unavailable"];
}
}
jQuery(function() {
jQuery( '#dpick' ).datepicker({
dateFormat: 'dd MM yy',
beforeShowDay: unavailable
});
});
도와주셔서 정말 감사합니다...이건 정말 간단한 일인 것 같지만, 난 그냥 머리를 감쌀 수 없을 것 같아!
이 에러의 원인은 다음과 같습니다.
- jquery.ui는 jquery 앞에 사용됩니다.
- $는 다른 라이브러리에서 사용되고 있습니다.
- 로컬에서 참조되는 jquery lib(wordpress)의 버전이 jquery.ui를 사용하는 버전과 다릅니다.
- 올바른 라이브러리와 버전이 참조되면 브라우저 캐시를 클리어해야 합니다.
을 사용하다가 2개 (jQuery 2개)._Layout.cshtml
ASP の asp asp asp asp asp asp aspNET MVC) 맨에 대한 맨 못했습니다.맨 위에 jQuery에 대한 참조를 1개 추가했는데 페이지 맨 아래에 1개 추가했는데, 미처 알아차리지 못했습니다.불벌레
보시다시피 jQuery UI가 충돌의 중심에 놓여 있었습니다!:D 이 문제를 해결하는 데 시간이 걸렸습니다.
모든 파일이 로드되었는지 확인합니다.200 OK 상태여야 합니다.
이건 내게도 통했어 모순되는 jquery code에도...
<script>
$.noConflict(); //Not to conflict with other scripts
jQuery(document).ready(function($) {
$( "#datepicker" ).datepicker({
dateFormat:"yyyy-mm-dd",
changeMonth: true,
changeYear: true,
maxDate: "+0D"
});
});
</script>
오래된 질문이지만 다른 사람에게 도움이 될 수도 있습니다.
wordpress에 js를 포함하는 베스트 프랙티스는 php 템플릿의 It's queuing 함수를 사용하여 수행하는 것입니다.
wp_enqueue_script( 'script', get_template_directory_uri() . '/js/script.js', array ( 'jquery' ), 1.1, true);
(여기에 표시)
스크립트(이 경우 jquery datepicker)의 의존관계를 선언할 수 있습니다.워드프레스가 다음에서 제공할 수 있는 내장 스크립트를 확인할 수 있습니다.
워드프레스는 jquery datepicker에 대한 의존관계를 제공하기 때문에 스크립트를 다음과 같이 포함할 수 있습니다.
wp_enqueue_script( 'script', 'mypath' . '/js/script.js', array ( 'jquery', 'jquery-ui-datepicker' ), 1.7, true);
jquery 종속성만 선언하면 다음과 같은 오류가 발생합니다.
'jQuery.datepicker(...)'는 함수가 아닙니다.'
datepicker 함수는 기본 워드프레저 jquery에 포함되지 않기 때문입니다.
저는 워드프레스에 대한 경험이 많지 않기 때문에 도움을 주려는 것은 무리일지도 모릅니다.그래도 나는 피카데이트를 써봤다.
이전에 이 오류가 발생한 적이 있습니다.
수집되지 않은 유형 오류: 개체 [개체]에 '날짜 선택자' 메서드가 없습니다.
보통 js 파일을 올바른 순서로 로드하지 않았기 때문에 발생합니다.당신의 사이트에서 개발자 도구를 보니 pickadate 플러그인이 어디에 로딩되어 있는지조차 알 수 없습니다.플러그인이 로딩되어 있고 올바른 순서로 로딩되어 있는지 확인합니다(아직 로딩되어 있지 않은 경우).
좋아요, 저는 조금 전에 같은 문제를 가지고 있습니다.그리고 그 문제에 대한 해결책은 단지 그 문제를 포함입니다.jquery.ui.datepicker.js
jquery 패키지에 포함되어 있습니다.근데 왜 이걸 넣어야 하는지 아직도 고민이에요.왜냐하면 저는jquery.ui
이전과 그 이전jquery.ui.custom
또는 단순히 jquery js 파일을 사용하여.datepicker()
기능을 합니다.
어쨌든 지금은 잘 되고 있어. 이게 도움이 되길 바래.
모든 스크립트를 바닥글에서 헤드로 옮겼더니 제대로 작동하기 시작했습니다.
이게 오래된 문제라는 거 알아.같은 문제가 있었습니다.jquery-1.10.2.js 및 jquery-ui.js와 함께 jquery.min.js가 포함되어 있었기 때문입니다.따라서 jquery.min.js를 삭제함으로써 TypeError: $(...).datepicker는 함수가 해결되지 않습니다.누군가에게 도움이 됐으면 좋겠다.
비슷한 문제가 있었지만 파이어폭스 브라우저에서만 발생하였습니다.require를 사용하여 js 파일을 로드하고 있습니다.내 Javascript에는 다음과 같은 대사가 있었다.
require(['jquery', 'jqueryui'], function ($) {
$(document).ready(function () {
$("#form1").validationEngine({ bindButtons: $(".bindButton") });
$("#txtBidDate").datepicker({dateFormat: 'mm-dd-yy'});
$("#txtInstDate").datepicker({dateFormat: 'mm-dd-yy'});
});
shim config를 정의하거나 js 파일이 모두 AMD로 로드되지 않는 한 loads js files asynchroulsy가 필요하며 순서는 gaurant 보증되지 않습니다.이 경우 jquery-ui 후에 jquery가 로드되었습니다.main.js에서는 jquery-ui가 jquery에 의존해야 한다고 정의하고 있습니다.이것으로 우리는 해결되었다.
언급URL : https://stackoverflow.com/questions/18382788/js-jquery-typeerror-jquery-datepicker-is-not-a-function
'code' 카테고리의 다른 글
ng-if를 사용하여 변수가 정의되어 있는지 테스트하는 방법 (0) | 2023.03.14 |
---|---|
반응 버튼 리디렉션 페이지 클릭 (0) | 2023.03.14 |
Oracle 스키마의 모든 콘텐츠 삭제 (0) | 2023.03.14 |
Angularjs는 1.2에서 템플릿에 바인딩되지 않습니다. (0) | 2023.03.14 |
JSON.stringify 함수 (0) | 2023.03.09 |