2013-03-17 63 views
0

這可能是一個非常簡單的修復。我似乎無法弄清楚這一點。如何在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

@天頂我得到它的工作。爲了檢測'(EVENT == 「懸停」)',我終於實現了直接使用jQuery的內PHP,這樣的事情 - ?''。這是一段時間了。我不記得其他解決方案在我的情況下效果如何。下面大概是MohamedAli和codeiz的解決方案。 – user1448031 2013-05-29 00:59:52

回答

0

創建函數然後調用它在任何你想

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

試着讓你的功能分開是這樣的:

function myHover() {} 

function myClick() {} 

,並在你的代碼中調用函數:

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 
    }); 
} 
相關問題