2010-08-13 13 views
8

que tienen una aplicación que tiene este formato repartidos por todo pero no sé de qué tipo es. No es jQuery, entonces ¿qué es?¿Qué tipo de JavaScript es esto?

$('some_edit').style.display = "block"; 
$('some_views').style.display = "none"; 

me sale esto en Firebug y sé que el elemento está presente:

$("some_edit").style is undefined 
+4

Diría que hay muchas posibilidades de que sea prototypejs. Así es como obtienes elementos por ID. http://jsfiddle.net/Ntwwz/ – user113716

Respuesta

12

Una gran cantidad de personas se han definido el símbolo '$' como un sustituto de document.getElementById().

Básicamente:

function $(id) { return document.getElementById(id); } 
$("ElementID").innerHTML = "Text"; //Usage 

Una más adecuada, "espacio de nombres" ejemplo:

var DOM = { // creating the namespace "DOM" 
    $: (function() { 
     if(document.getElementById) 
      return function(id){ return document.getElementById(id); } 
     else if(document.all) 
      return function(id) { return document.all[id]; } 
     else 
      return function(id) { /* I don't even want to get into document.layers */ } 
    })() 
}; 

// Later in the code: 
{ 
    function ExampleFunction() { 
     // ... 
     DOM.$("ElementID").style.backgroundColor = "#96d0a0"; // a nice minty green color 
     // ... 
    } 
} 

He utilizado un patrón self-invocation (function(){ ... }()) en este ejemplo.

+0

Esta es probablemente la situación. –

+1

Idea genial ... No hago mucho JavaScript, pero podría usar este pequeño atajo la próxima vez. +1 – iandisme

+1

lol. por favor no lo hagas pensar así de todos los que alguna vez hicieron alguna versión de js es lo que causa problemas de compatibilidad de framework en estos días. espacio de nombres! –

-4

Es jQuery - $ utiliza como variable clave.

Agregado:

También podría ser mootools. También utiliza $

Agregado:

'some_edit' sería la identificación de un elemento.

ps. Estoy de acuerdo $ podría ser cualquier cosa. Las probabilidades son que es JQuery o Mootools. "Cuando oyes latidos de cascos, piensa en caballos, no en cebras".

+1

¿Qué tipo de selector es ''some_edit''? –

+4

Muchas bibliotecas usan $ como una variable auxiliar, ciertamente no es específica de jQuery. –

+0

No es necesario - Muchas bibliotecas usan $, pero estoy de acuerdo en que JQuery es la biblioteca más probable (ya que tiene la adopción más extendida) – driis

16

Podría ser muchas cosas - examinar el código fuente (o utilizar Firebug) y ver lo que se cargan las bibliotecas JS.

+1

+1 - de lejos la respuesta más sensata –

+2

Si va a utilizar Firebug, también puede establecer un punto de interrupción y entrar en él para estar doblemente seguro de qué biblioteca se está ejecutando. – nirvdrum

0

Se está estableciendo el estilo de visualización de los dos elementos de la página - la propiedad de visualización especifica el tipo de caja de un elemento debe generar.

bloque = El elemento genere una caja de bloque (un salto de línea antes y después del elemento) ninguno = El elemento generará ninguna caja en absoluto

4

Al principio pensé que el selector de jQuery probablemente habría sido $("#some_edit") y luego .css(). así que hubiera dicho, prototipo o mootools o una cerveza casera $.

sin duda puede descontar mootools y prototype, porque si el selector devuelve un objeto, entonces la propiedad de estilo estará disponible (ignorando las mejores prácticas en ambos marcos en los estilos de configuración).

esto deja, el sitio utiliza asignación de $ homebrew o jQuery, que no está siendo utilizado correctamente.

realidad, $ ("foo"). Estilo.bla en jQuery producirá esta misma excepción (incluso si el selector era bueno) - aquí es jsFiddle al rescate

punto caso jQuery (disparadores): http://www.jsfiddle.net/dimitar/vmsZn/

caso punto de prototipo (obras): http://www.jsfiddle.net/dimitar/vmsZn/1/

mootools el caso del punto (obras): http://www.jsfiddle.net/dimitar/vmsZn/2/

0

Pon a [0] frente a $ ('some_views') para devolver el DOM elemento nativo.

$ ('some_views') [0] .style.display = "none";

o $ ('some_views'). Get (0) .style.display = "none";

o $ ('some_views'). Css ('display', 'none') para recorrer la colección de elementos DOM.