1

我有一个表格,其中动态数据表是用 PHP 构建的。在每一行中都有一个图像,当单击该图像时,它会通过单击事件调用一个 jQuery 函数。

例如,如果图像的 id 为 eventnfo_0,我有一个这样的函数:

$("#eventnfo_0").click(function()

只要我为每一行定义了点击事件,一切都可以正常工作。问题是,我需要使其动态化,因为行数可能会有所不同,因此为每一行构建一个如上所述的单独函数是不可行的。

我的想法是必须有一种方法可以从 onclick 事件中调用 jQuery 函数并传递行号,但到目前为止,还没有骰子。

我确信这不是一项不常见的任务,但我的搜索没有任何运气。

任何想法表示赞赏。

4

3 回答 3

3

有很多方法可以做到这一点...在每个 img 中调用同一个类并将其用作选择器...

$('.yourClassName').click(function(){alert($(this).attr('id'));});

或者

 $("[id^='eventnfo_']").click(function(){
     alert($(this).attr('id'));
 });

因为它是动态添加的,所以这可能会有所帮助..

$(document).on('click',"[id^='eventnfo_']".click(function(){
     alert($(this).attr('id'));
 });

更新

您可以将data属性用于行号并从 jquery 中获取。

说这是你的html。

 <img id="eventnfo_0" data-rownumber="1"/>

和jQuery

$("[id^='eventnfo_']").click(function(){
     alert($(this).data('rownumber')); //this will alert 1
 });
于 2013-01-22T05:20:48.843 回答
1
$("[id^='eventnfo_']").click(function(){
   alert(this.attr('id'));
});
于 2013-01-22T05:22:26.857 回答
0

如果您正在寻找无法使用的动态行.click,您应该使用.on首选方法。

JS代码

$("#table_id").on("click","tr [id^='eventnfo_']", function(){
 //your code goes here.
});

上面称为 jQuery 事件委托。阅读更多

于 2013-01-22T05:46:30.263 回答