【问题标题】:jQuery: inherit functions to several objectsjQuery:将函数继承到多个对象
【发布时间】:2009-11-28 16:04:02
【问题描述】:

我制作了几个基于表格的小部件(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");

【问题讨论】:

    标签: jquery function apply


    【解决方案1】:

    你有两个选择:

    首先只需创建一个插件来处理这些基本内容,然后创建其他插件来处理该列表的特殊内容。

    第二次使用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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-12
      • 1970-01-01
      • 2023-04-11
      • 2012-06-19
      • 1970-01-01
      相关资源
      最近更新 更多