Mi objetivo es aplicar onFocus = "if (this.blur) this.blur ()"; a todas las secciones del área bajo un mapa de imagen para un Microsoft Chart Control que se crea dinámicamente en la página.

A continuación, entro en IE y edité el campo 'atributos'. Esto está logrando mi objetivo deseado, pero parece que no puedo obtenerlo en JavaScript.

Pensé que debería ser esto:

$(".area").onFocus(
    function () {
        if ($(this).blur) $(this).blur();
    }
)

Pero no veo los mismos resultados cuando uso este script. ¿Alguna idea?

Salud

Editar:

Ahora estoy usando el código:

$(".area").focus(
    function () {
        if ($(this).blur) $(this).blur();
    }
)

Pero esto no parece replicar la misma funcionalidad que editar el atributo directamente. ¿Alguien tiene una idea de por qué? Puedo intentar usar un selector css más amplio, pero por lo que puedo decir ... ¡esto debería funcionar!

enter image description here

0
Sean Anderson 13 sep. 2011 a las 22:38

3 respuestas

La mejor respuesta

Debe ser:


$(".area").focus(
    function () {
        if ($(this).blur) $(this).blur();
    }
)

ACTUALIZACIÓN: Para la edición de atributos:


    function focus_event() {
        if ($(this).blur) $(this).blur();
    }

$(".area").attr("focus", "focus_event()");
2
Joel A. Villarreal Bertoldi 13 sep. 2011 a las 18:51

OK, tienes algunos problemas. No está cerrando la función jQuery con un ";". Te estás perdiendo un "!" anterior a la declaración if: "if (! $ (this) .blur ())". Prueba esto:

$(".area").focus(
    function () {
        if (!$(this).blur) $(this).blur();
    }
);
0
BenjaminRH 13 sep. 2011 a las 18:44

Necesita $('.area').focus(function() {... no onFocus. jQuery focus

1
Joe 13 sep. 2011 a las 18:41