2009-06-11 8 views
50

recibo el siguiente error al cargar mi página de índice en FF3.0. Lo siento, no puedo pegar el script aquí ya que son 2030 líneas de código."element.dispatchEvent no es una función" error js capturado en Firebug de FF3.0

element.dispatchEvent no es una función

en la expansión que me da más adelante cosas,

fuego()() prototype.js? 1 (línea 3972)

_methodized()() prototype.js? 1 (línea 246)

fireContentLoadedEvent() prototype.js? 1 (línea 4006)

[Rompe este error] element.dispatchEvent (event);

element.dispatchEvent(event); está en la línea 3972 de prototype.js. Incluyo prototype.js junto con 10s de otros archivos js en mi página de índice.

¿Alguien ha encontrado este tipo de error? Por favor, alguien me explique por qué aparece este error.

+0

Acabo de tener este problema con un select2 en jquery usando el tema wrapbootsrap pixel-admin.Se puede reproducir en firebug en el sitio de demostración a través de http://radiant-ocean-4606.herokuapp.com/forms-advanced.html - rompe el select2 cuando FB está abierto ... –

+0

tengo el mismo error y no jQuery cargado en la página:/ – eapo

Respuesta

98

¿está usando jquery y prototipo en la misma página por casualidad?

Si es así, utilice el modo jQuery noConflict; de lo contrario, sobrescribirá prototipos $ función.

modo noConflict se activa de la siguiente manera:

<script src="jquery.js"></script> 
<script>jQuery.noConflict();</script> 

Nota: al hacer esto, la variable de signo dólar ya no representa el objeto jQuery. Para no volver a escribir todo el código jQuery, puede utilizar este pequeño truco para crear una cobertura de signo de dólar para jQuery:

jQuery(function ($) { 
    // The dollar sign will equal jQuery in this scope 
}); 

// Out here, the dollar sign still equals Prototype 
+1

perfecto. esto acaba de terminar horas de frustración para mí. ¡muchas gracias! :-) – mscccc

+1

¡Muchas gracias! También hizo magia para mí. –

+0

gracias, para mí este error se debió al conflicto entre jquery y el prototipo – Ross

1

Hay que añadir

<script>jQuery.noConflict();</script>

después

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
9

Después de todas las etiquetas de guiones de Jquery, agregue

<script>jQuery.noConflict();</script> 

para evitar el conflicto entre Prototype y Jquery.

-1

de verificación para esta llamando a la biblioteca jQuery después de los noconflict.js o que este llamado más de una vez la biblioteca jQuery después de los noconflict.js

0

cambie la línea siguiente

$(document).ready(function() { 

Para

jQuery.noConflict(); 
jQuery(document).ready(function($) { 
Cuestiones relacionadas