2013-03-17 2 views
0

Il s'agit probablement d'un correctif très simple. Je n'arrive pas à comprendre ça. J'ai stocké des noms d'événements dans des variables et je voudrais les utiliser dans le code comme indiqué dans le pseudo-code ci-dessous, mais cela ne semble pas fonctionner pour moi. Voir les commentaires dans le code ci-dessous.Comment utiliser une variable comme nom d'événement dans jQuery?

var EVENT; 
if (something == true) EVENT = "hover"; 
else EVENT = "click"; 

mynav = function() { 
    $(".nav").not(".nav2").bind(EVENT, function() { // EVENT works fine here 
    ...... 
    ...... 
    ...... 
    } (EVENT == "hover")?', function() {}':'';); // If EVENT is "hover", I want to display function()... Not sure how to make it work here.... 
} 
+0

@Zenith Je l'ai eu le travail. Pour détecter '(CAS == "vol stationnaire")', je fini par le faire directement en utilisant PHP au sein de jQuery, quelque chose comme ça - ' '. C'était il y a un moment. Je ne me souviens pas si les autres solutions fonctionnaient bien dans ma situation. Probablement MohamedAli et les solutions de codeiz ci-dessous fonctionnent aussi. – user1448031

Répondre

0

créer la fonction alors appeler où vous voulez

function MyHover(){ 
alert('MyHover()'); 
} 

function MyClick(){ 
alert('MyClick()'); 
} 

var EVENT; 
if (something == true) EVENT = "hover"; 
else EVENT = "click"; 

mynav = function() { 
    $(".nav").not(".nav2").bind(EVENT, function() { // EVENT works fine here 
    ...... 
    ...... 
    ...... 
    } (EVENT == "hover")? MyHover() : MyClick() ;); // If EVENT is "hover", I want to display function()... Not sure how to make it work here.... 
} 
0

Essayez de rendre votre fonction séparée comme ceci:

function myHover() {} 

function myClick() {} 

et dans votre code appelez votre fonction:

mynav = function() { 
    $(".nav").not(".nav2").bind(EVENT, function() { // EVENT works fine here 
    ...... 
    ...... 
    ...... 
    } , ((EVENT == "hover")?:myHover : myClick)); 
} 
0
var EVENT = something == true ? "hover" : "click"; 
mynav = function() { 
    $(".nav").not(".nav2").bind(EVENT, EVENT === "hover" ? function() { 
     // Hover function 
    } : function() { 
     // Click function 
    }); 
} 
Questions connexes