2011-11-17 42 views
0

一個非常基本的問題,當一個參數調用jQuery函數...有需要的即不是在頁面加載

我有一個頁面加載火災jQuery的功能:

$(document).ready(function() { 
    // some code 
    $('#filter').keyup(function() { 

    }); 
} 

的代碼過濾第一列表中的一列。我現在要過濾nth列,但我不想編寫兩個非常類似的函數。

我可以改變函數接受一個參數,像這樣:

$(document).ready(function (column_num) { 
    // some code 
    $('#filter').keyup(function() { 

    }); 
} 

這是罰款。但是,如何在我的HTML文件中執行該函數的單個參數?

+0

'column_num'變量來自哪裏?你可以發佈你的表格的HTML,讓我們更清楚地瞭解你的代碼。 –

回答

2

HTML:

Filter 1:<input type="text" class="filter" data-filter-column="1"> 
Filter 2:<input type="text" class="filter" data-filter-column="2"> 
Filter 3:<input type="text" class="filter" data-filter-column="3"> 

<div id="test"></div> 

的JavaScript:

$(document).ready(function() { 
    $('.filter').keyup(function(e) { 
     var column_num = $(this).attr("data-filter-column"); 
     var filter_token = $(this).val(); 
     //filterCol(column_num, filter_token); 
     $("#test").text("Filter column " + column_num + " by token " + filter_token); 
    }); 
}); 

演示,請參閱:http://jsfiddle.net/3cte4/2/

1

我不能完全肯定我明白你要完成的任務但我認爲你需要這樣的東西:

var handler = function(column_num) { 
    switch (column_num) { 
     ... 
    } 
} 

$(document).ready(function() { 
    $('#filter_for_column_1').keyup("column1", handler); 
    $('#filter_for_column_2').keyup("column2", handler); 
    $('#filter_for_column_3').keyup("column3", handler); 
    ... 
} 
相關問題