2010-11-23 6 views
0

J'ai des problèmes pour déclencher un événement de clic lorsque la touche Entrée est enfoncée. Lorsque j'utilise les codes ci-dessous, l'événement en direct («clic») est déclenché 3 fois (ce qui signifie que le message d'alerte s'affiche 3 fois) lorsque j'appuie sur une touche d'entrée. Merci d'avance!! - KS de la CoréeJQuery: événement déclencheur en cas de problème de touche

$('.searchWord').live('keypress', function(e) { 
    if(e.keyCode == 13) { 
$('.bBtnSearchBoard').trigger('click'); 
    } 
}); 

$('.bBtnSearchBoard').live('click', function() { 
alert('a'); 

}); 
+0

le parc, cambraca suggère de vérifier si vous avez plusieurs divs avec le même nom de classe – kobe

Répondre

0

essayer keydown

$('.searchWord').live('keydown', function(e) { 
    if(e.keyCode == 13) { 
$('.bBtnSearchBoard').trigger('click'); 
    } 
}); 
+0

avons-nous besoin d'un event.preventDefault(); ici .... – kobe

+0

merci pour la réponse rapide. J'ai essayé le 'clavier' mais j'ai obtenu le même résultat. –

+0

@ks Park avez-vous vérifié les noms de plusieurs classes à l'intérieur de votre code HTML, faire une recherche sur "searchWord" et "bBtnSearchboard" – kobe

0

Il semble bien sur this test. Peut-être que votre problème est que .bBtnSearchBoard renvoie plus d'un élément.

+0

Merci cambraca, vous avez raison. –

1

Il semble que vous ayez plusieurs éléments .searchWord imbriqués l'un dans l'autre ou plusieurs éléments .bBtnSearchBoard.

+0

Merci box9, vous avez raison. –

0
$('.searchWord').live('keypress', function(e) { 
    if(e.keyCode == 13) { 
$('.bBtnSearchBoard').click(); 
    } 
}); 

$('.bBtnSearchBoard').live('click', function() { 
    //do your stuff here 
$(this).die("click"); //The first time this method executes unbinds the click handler from matched elements 
return false; //to prevent bubbling up of this event higher up the DOM 
}); 
Questions connexes