2011-11-17 48 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); 
    ... 
} 
相关问题