2012-06-22 6 views
8

Suppongo che il titolo sia abbastanza auto-esplicativo.Fare clic su OPPURE, quindi fare qualcosa

Desidero chiudere un div quando un utente fa clic su un overlay O su un collegamento. So che si può solo scrivere due funzioni in questo modo:

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

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

Oppure si può scrivere una funzione, in questo modo:

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

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

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

Ho provato questo, ma non ha funzionato.

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

Ma è possibile scrivere questo in una riga? (Qualcosa di simile $("#close-search" OR #global-overlay"))

risposta

21

separati da virgola significa questo o quel

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

multipla selector

2

Prova questa

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

testato:

Prova questa:

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

avviso la stringa nel selettore non è divisa come una matrice, invece - il selettore Sizzle farà questo per voi.