0

我制作了几个基于表格的小部件(listview-kind-of),它们都具有相同的特征:设置奇数行/偶数行、悬停开/关、设置颜色 onClick、单击垃圾图标时删除一行。

所以每个小部件总是相同的(原型)代码。有没有办法让代码只有一次然后简单地将它应用/继承到所有小部件?

第二,这里有一些代码——可以优化吗?

var me = this;
$("tr",this.table).each(function(i)
{
    var tr = $(this);
    tr.bind("mouseover",function(){me.hover(tr,true)});
    tr.bind("mouseout",function(){me.hover(tr,false)});
    tr.bind("click",function(){me.Click(tr)});
});
$("tr").filter(":odd").addClass("odd");
4

1 回答 1

0

您有 2 个选项:

首先只需创建一个插件来处理这些基本内容,然后创建其他插件来为该列表做专门的事情。

其次,使用 jQuery.extend 扩展一个插件并创建一个新插件。

为了优化这个使用事件委托 ( jquery().live())

var me = this;
var id = this.table.attr('id');

$('#'.id)
.live("mouseover",function(){me.hover($(this),true)})
.live("mouseout",function(){me.hover($(this),false)})
.live("click",function(){me.Click($(this)});

$("tr").filter(":odd").addClass("odd");

http://docs.jquery.com/Events/live

于 2009-11-28T17:52:55.610 回答