内联vs独立事件处理程序

时间:2011-07-22 04:57:10

标签: javascript html-table

请帮我改正一下。

我使用带有内联事件处理程序的模板表。 e.g。

//假设这将创建显示someArray中Name的表行    // someArray是全局数组列表

 for(var =i; i<someArray.length; i++){
   var obj = someArray[i];
   <td> <span onclick="showRelatedObj(i)">obj.Name</span> </td>
}

//----------------------
function showRelatedObj(p){
     var obj = someArray[p];
    showMessageBox(obj.Name +" ," + obj.Location.....);
}

===================================================================

当我阅读一些设计指南时, html内容应与内容与事件分开, 通过这种方式,搜索引擎更容易修改,也更容易搜索。 如果我使用单独的事件处理程序而不是内联的事件处理程序,那么使用id并使用循环搜索会很复杂,不是吗?

请建议替代或标准方法来实现这一目标。

1 个答案:

答案 0 :(得分:0)

例如使用jQuery:

$(document).ready(function(){
$('td > span').click(function(){
showRelatedObj();
});
});

你可以从'this'变量计算i值,这意味着点击的span元素