Javascript classname y funcion..

xCoNDoR

Mirar, tengo unos divs con class="arriba boton"

y una funcion js onclick al .boton que me cambia con className = "arriba" la clase del div que he pulsado, eliminandole la parte 'boton'.

cuando pulso ese div se ejecuta la funcion y al cambiar el nombre de la clase, se supondria que no deberia funcionar mas de boton puesto que ya no tiene la clase boton, o eso al menos creia yo porque sigue saltando el evento onclick al pusarlo.

Alguna idea de por que pasa esto ?

Saludos

scumah

¿Usas jQuery? ¿Puedes poner aquí el código para que lo veamos mejor?

1 respuesta
xCoNDoR

#2 No es el codigo original pero basicamente es esto lo interesante, supongo. Si hay algun otro factor lo pongo entero. Gracias

Div:

<div class="up voting" id="4"><p>hello</p></div>

JS:

$(function() {
$(".voting").click(function()
{

var este = document.getElementById("4");
este.className = "up";
}....}....

PD: Si, uso jqery

1 respuesta
Khanser

http://api.jquery.com/toggleClass/

1 respuesta
xCoNDoR

#4 No quiero hacer ningun toglgle, solo quiero (y lo consigo) eliminar una clase del div para que no tenga funcion onclick, y no da resultado puesto que sigue teniendo la funcion onclick

scumah

#3, Prueba a hacer la llamada al evento click así en vez de con el .click():

$('.voting').live('click', function() {
	// blahblah
});

Con el live se consigue que el evento se asocie al selector teniendo en cuenta los cambios que pueda haber en este (el selector) en el futuro.

Además, permíteme que te ponga cómo haría yo lo que creo que quieres hacer, que creo que es un poco más bonito y te vale en caso de que tengas varios elementos :P

$('.voting').live('click', function() {
	$(this).removeClass('voting');
});

Así no te tienes que liar sacando ids, simplemente le quitas la clase voting al elemento en el que haces click.

1 respuesta
xCoNDoR

#6 Gracias, genial, no conocía el .live
Lo de getbyid ha sido un poco a lo loco al escribirlo, es un sistema de votos, el objetivo es que cuando has votado una vez se vaya el efecto click. En la funcion completa obtengo el id y el name para saber que y sobre que tengo que actuar al actualizar los votos.

No habia pensado en el removeClass, otro acierto.

Te lo agradezco, no es la primera vez que me echas una mano :)

1 respuesta
scumah

#7 De nada hombre, me alegro de que te haya valido!

Usuarios habituales

  • scumah
  • xCoNDoR
  • Khanser