2012-06-22 22 views
8

Supongo que el título es bastante autoexplicativo.Haga clic en O, y luego haga algo

Quiero cerrar un div cuando un usuario hace clic en una superposición O en un enlace. Sé que puede escribir dos funciones de este modo:

$("#close-search").click(function() { 
    $("#branding #searchform").fadeOut("fast"); 
    $("#global-overlay").fadeOut("fast"); 
}); 

$("#global-overlay").click(function() { 
    $(this).fadeOut("fast"); 
    $("#branding #searchform").fadeOut("fast"); 
}); 

o puede escribir una función, así:

function closeSearch { 
    $(this).fadeOut("fast"); 
    $("#branding #searchform").fadeOut("fast"); 
} 

$("#close-search").click(function() { 
    closeSearch(); 
}); 

$("#global-overlay").click(function() { 
    closeSearch(); 
}); 

yo probamos este, pero no funcionó.

$("#close-search", "#global-overlay").click(function() { 
     $("#branding #searchform").fadeOut("fast"); 
     $("#global-overlay").fadeOut("fast"); 
    }); 

¿Pero es posible escribir esto en una línea? (Algo así como $("#close-search" OR #global-overlay"))

Respuesta

21

coma separados mediante tal o cual

$("#close-search, #global-overlay") 

múltiple selector

2

probar este

$("#close-search, #global-overlay").click(function() { 
     $("#branding #searchform").fadeOut("fast"); 
     $("#global-overlay").fadeOut("fast"); 
}); 
0

No comprobado:

Prueba esto:

$("#close-search, #global-overlay").click(function() { 
     $("#branding #searchform").fadeOut("fast"); 
     $("#global-overlay").fadeOut("fast"); 
    }); 

observe que la cadena del selector no está dividida como una matriz, en su lugar, el selector Sizzle hará esto por usted.