2012-07-19 82 views
2

請你幫助我,我找不到解決方案。我有一個參數的函數,並希望這個函數傳遞到一個jQuery綁定事件:如何將參數傳遞給jquery綁定事件?

function countChars23 (chars) { 
    var thi = $(this); 
    var len = $(this).val(); 
    if (len.length >= chars) { 
     len = len.substring(0, 22); 
     thi.val(len); 

    } 
} 

調用函數鴕鳥政策工作:

$('#name').bind('keyup', countChars23(10)); 

這種鴕鳥政策工作之一:

$('#name').bind('keyup', function() { 
    countChars23(10); 
} 

這種鴕鳥政策工作之一:

$('#name').keyup(function() { 
    countChars23(10); 
} 

很多感謝您的幫助!

回答

8

可以使用data參數.bind

$('#name').bind('keyup', {chars: 10}, countChars23); 

,然後在功能與event替換聲明參數,並把這個第一行:

var chars = event.data.chars; 

編輯的原因你的第二次和第三次嘗試(使用額外的函數包裝)不起作用是因爲它們沒有正確設置this。你將不得不這樣稱呼它:

$('#name').keyup(function() { 
    countChars23.call(this, 10); 
} 
+0

你的第一個解決方案工作!我的第二次和第三次嘗試(見上文)都不起作用,不知道爲什麼!非常感謝! – 2012-07-20 11:53:14

+0

@ drog21我剛想出他們爲什麼不工作 - 請參閱更新。 – Alnitak 2012-07-20 12:42:17

+0

您的第一個解決方案只能工作。 – 2012-08-23 10:46:00

相關問題