Cuando yo uso el DatePicker, jQuery UI plugin, en una ya existente .página aspx obtengo errores que:

$("#datepicker").datepicker is not a function

Sin embargo, cuando puedo copiar y pegar el mismo código que crea y utiliza el selector de fecha para un archivo HTML que también está en el mismo directorio que la página aspx, funciona a la perfección. Esto me lleva a suponer que hay algunos JS archivos en la página aspx que impide el selector de fechas o tal vez jQuery UI JS archivos para cargar correctamente.

¿Alguien puede confirmar mis creencias o proporcionarle algunos consejos para encontrar el culpable de que la interferencia con jQuery UI plugins?

  • Puedes publicar el correspondiente código jQuery por favor
  • ¿Cómo estás incluyendo el selector de fecha plugin en la página -, es en un ScriptManagerProxy o estás escribiendo directamente en la página? ¿Estás seguro de que se va a cargar? Si es así, ¿qué otros plugins están incluidos? Estás seguro de que has incluido ui.core.js?
  • He encontrado el problema. Me gustaría haber encontrado esta solución de ayer como a oponerse a un 1hr después de la publicación de esta pregunta. El código JS que he escrito referencias de jQuery y jQuery UI archivo javascript actuó como un módulo. Su padre también hace referencia a jQuery en la parte inferior de la etiqueta body (para 2 referencias a jQuery). Ya que jQuery se reinicializa después de interfaz de usuario jQuery, jQuery UI, que es eliminado como un plugin, por eso mi código no se pudo encontrar el DatePicker de plugin.
  • Ya estoy usando Webpack, necesitaba usar jquery-ui-paquete en su lugar. stackoverflow.com/a/39230057/470749
InformationsquelleAutor burnt1ce | 2009-07-31

15 Comentarios

  1. 190

    Luché con un problema similar durante horas. Resultó que jQuery se ha incluido dos veces, una por el programa que yo era la adición de una función jQuery y una vez por nuestro propio depurador.

    • Este fue mi problema también. Yo tenía una referencia a mi propia biblioteca de jQuery junto con Herramientas de jQuery CDN que, sin saberlo, incluido jQuery.
    • Este también fue mi problema. Estoy usando superfish y fue también la carga de jquery. Yo no me di cuenta hasta ahora.
    • Así que ¿cuál es la solución?
    • doble comprobación de que jQuery no es incluido dos veces en la página.
    • Este también fue mi problema. Yo era el uso de los bienes comunes dentro de los carriles de activos de canalización y era declarar jquery en mi top de nivel de archivo de metadatos (application.js) Y había un jquery min archivo en mi carpeta JS. Doble-declarar. Me acaba de quitar el jquery declaración.
    • Gracias por esta respuesta, este proplem fue y para mí también.
    • La respuesta para mí también. Se incluyó a través de ActiveAdmin en mi caso.
    • Si la importación de ciertas versiones de las tablas de datos, también puede darle a usted este problema porque incluye jquery.
    • Mi página tiene jquery cuatro veces, pero tres de ellos se agregan por la extensión de chrome, aún así crear el problema. si sí, entonces incluso si realizamos el diseño de la página correctamente en caso de que la página se carga por el cliente, quien es el uso de extensiones que añade jquery, entonces también que la página no funcione correctamente
    • Muchas gracias por ahorrar el tiempo de los compañeros de los desarrolladores 😀

  2. 32

    Si hay otra biblioteca que utiliza la variable de$, usted puede hacer esto:

    var $j = jQuery.noConflict();
    $j("#datepicker").datepicker();

    También asegúrese de que javascript se incluye en el orden correcto para que la biblioteca principal jquery es definido antes de la jquery.la interfaz de usuario. He tenido que causar problemas.

    • También asegúrese de que javascript se incluye en el orden correcto para que la biblioteca principal jquery es definido antes de la jquery.la interfaz de usuario. He tenido que causar problemas << que es la respuesta correcta para mí.
    • Este no me funciona todavía
  3. 19

    Normalmente, este error aparece cuando falta un archivo de la interfaz de usuario jQuery conjunto.

    Doble-compruebe que dispone de todos los archivos, la interfaz de usuario jQuery archivos así como el CSS y las imágenes, y que están correctamente en el archivo vinculado/ubicación del directorio en el servidor.

    • Esta respuesta es la más cercana a la solución que he publicado.
    • También puede publicar su comentario como su propia respuesta y aceptar que algún tiempo más tarde.
    • Nota: asegúrese de que en la conmutación de archivos locales a la CDN de google archivos, que en realidad tienes el derecho de url. Es ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js, no ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery-ui.min.js, qué diablos.
  4. 9

    jQuery » $(«#datepicker»).datepicker no es una función»

    He solucionado el problema mediante la colocación de las siguientes tres archivos en la sección del cuerpo de la forma al final.

      <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js" type="text/javascript"></script>
        <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js" type="text/javascript"></script>
        <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="Stylesheet" type="text/css" />
  5. 8

    Si usted piensa que hay un conflicto puede utilizar jQuery.noConflict() en el código. Los detalles están en el docs.

    REFERENCIA A LA MAGIA DE ACCESOS DIRECTOS PARA
    JQUERY

    Si no te gusta escribir completo
    «jQuery» todo el tiempo, hay algunos
    alternativa accesos directos:

    Reasignar jQuery para otro acceso directo
    var $j = jQuery; (Este podría ser el
    mejor método si desea utilizar
    las diferentes bibliotecas) Utilice el siguiente
    la técnica, que le permite utilizar $
    en el interior de un bloque de código sin
    permanentemente sobrescribir $:

    (function($) { /* some code that uses $ */ })(jQuery)

    Nota: Si utiliza este
    técnica, usted no será capaz de utilizar
    Prototipo de métodos dentro de este encapsulado
    la función que esperan $ a de ser
    Prototipo de dólares, por lo que usted está haciendo una
    opción para utilizar sólo jQuery en que
    el bloque. Utilizar el argumento de la DOM
    listo evento:

    jQuery(function($) { /*some code that uses $ */ });

    Nota:
    De nuevo, dentro de ese bloque no se puede usar
    Prototipo de los métodos de

    Eso es desde el final de la documentación que puede ser útil para usted

  6. 6

    Ir por la obvia primera: ¿Está usted bien la referencia jquery-ui.js archivo?

    Trate de usar la pestaña de la red de firebug para encontrar si se carga, o de la Información\Ver el código javascript de la Web Developer Toolbar.

  7. 3

    Has intentado usar Firebug para 1) determinar que no existen errores de Javascript y 2) que el #datepicker elemento existe en la página?

    Más probable es que hay un error antes de que el selector de fecha de la llamada que está impidiendo que el datepicker de llamada de la ejecución.

  8. 1

    Yo solo tuve este problema, y moviendo el JS referencias de código y hacia la parte inferior de la página antes de que el </body> etiqueta fijada para mí.

  9. 1

    También compruebe los permisos para el directorio de descarga de los archivos. Por alguna razón, cuando he descargado este, por defecto se guardan en una carpeta con el acceso no permitido! Se llevó para siempre a averiguar que era el problema, pero yo sólo tenía que cambiar los permisos para el directorio y su contenido – de la configuración para TODOS = SÓLO LECTURA. Funciona muy bien ahora.

  10. 1

    Me encontré con este problema recientemente – el problema era que yo había incluido la interfaz de usuario jQuery archivos de la etiqueta head, pero la Telerik de la biblioteca que estaba usando incluido jQuery en la parte inferior del cuerpo de la etiqueta (por lo tanto aparentemente re-inicialización de jQuery y descarga la interfaz de usuario plugins cargados previamente).

    La solución era averiguar donde jQuery se incluye, incluyendo la interfaz de usuario jQuery secuencias de comandos después de eso.

  11. 0

    Sólo me encontré con un problema similar. Cuando he cambiado de referencia de script de auto-etiquetas de cierre (es decir, <script src=".." />) a nodos vacíos (es decir, <script src=".."></script>) mis errores fue y yo de repente podría hacer referencia a la interfaz de usuario jQuery funciones.

    En el momento, no me di cuenta de que esto era sólo un cerebro-pedo de mí no se cierra correctamente, para empezar. (Estoy publicando esto simplemente en la posibilidad de que cualquier persona que viene a través de la rosca es de tener un problema similar.)

  12. 0

    Algún archivo sin carga antes de llamar.

    Por ejemplo:
    El código:

    <%= javascript_include_tag "distpicker.min" %>
    <%= javascript_include_tag "distpicker.data.min" %>

    Cambio a esta:

    <%= javascript_include_tag "distpicker.data.min" %>
    <%= javascript_include_tag "distpicker.min" %>
  13. 0

    Podía solucionar este problema eliminando el jquery paquete en el _Layout.cshtml

    Encabezado

        <script src="~/Scripts/jquery-1.10.2.js"></script>
        <script src="~/Scripts/kendo/2015.2.902/kendo.all.min.js"></script>
        ...

    Pie de página

        @Scripts.Render("~/bundles/jquery")
        @Scripts.Render("~/bundles/bootstrap")
        @RenderSection("scripts", required: false)

    Cambiar el pie de página para

        @Scripts.Render("~/bundles/bootstrap")
        @RenderSection("scripts", required: false)
  14. 0

    Has probado a utilizar
    $(«#<%= txtDateElementId.ClientID %>»).datepicker();
    en lugar de
    $(«#txtDateElementId»).datepicker();
    cuando se selecciona un elemento con ID usando JQuery.

Dejar respuesta

Please enter your comment!
Please enter your name here