2012-04-27 68 views
0

所以說我有這個..如何通過params傳遞客戶關鍵字處理程序?

keyup_handler: function(e, item){ 
    if (e.which == 27) { 
     close_lightbox(item); 
     return false;  
    }; 
    } 

$(document).live('keyup', function(e){ keyup_handler(e, item) }); 

這不是在這裏返回任何的console.log()的我的地方。所以我認爲它沒有被觸及。我錯過了什麼?如何將eevent傳遞給keyup_handler?

的jQuery 1.4.4

+0

你可以在[jsfiddle](http://jsfiddle.net)中重現這個嗎? – 2012-04-27 14:04:04

+1

你能比「不工作」更具體嗎?我期望在4.7k代表你現在已經學會了如何提出更好的問題。 – 2012-04-27 14:07:57

+0

我的歉意安東尼。更新。 – Trip 2012-04-27 14:14:07

回答

1

你返回false從呼叫keyup_handler,但不能從調用它的功能,嘗試做:

$(document).live('keyup', function(e){ return keyup_handler(e, item); }); 

如果if語句不計算爲真,您可能還需要稍微修改keyup_handlerreturn true;

我在這裏假設你非常模糊的「不工作」語句意味着當你釋放相應的鍵時,通常的鍵控功能不會被阻止。

此外,.live()是一個不推薦使用的jQuery函數,並非真正用於您使用它的目的。使用.on()(如果您使用的是jQuery 1.7+),或者使用.bind()

+0

啊謝謝!這工作。我必須投入回報。我的其他處理者不需要這些。非常感謝。 – Trip 2012-04-27 14:14:39

0

在jQuery的在看看keyup()嘗試

0

試試這個 - >

$(document).live('keyup', function(e){ 
    if (e.which == 27) { 
close_lightbox(<selector-that selects-item>); 
     return false;  
    }; }); 
0
keyup_handler = function(e, item){ 
    var code = (e.keyCode ? e.keyCode : e.which); 
    if (code == 27) { 
     close_lightbox(item); 
     return false;  
    } 
} 

$(document).on('keyup', 'dynamic_element', function(e){ keyup_handler(e, item) });​ 

FIDDLE

現場()已被棄用,不知道爲什麼你需要使用它的文件? 對於舊版本的jQuery的,我想這就夠了:

$(document).keyup(function(e){ keyup_handler(e, item) });​​​​​​​​​ 

除非你以某種方式設法使文檔級轉化爲動態元素?

相關問題