【问题标题】:Call click event on last clicked row in YUI datatable在 YUI 数据表中最后点击的行上调用点击事件
【发布时间】:2010-06-11 11:50:28
【问题描述】:

我有一个 YUI 数据表,我有一个函数,当我点击一行时会调用它:

...
YAHOO.keycoes.myDatatable = myDatatable;
...
myDatatable.subscribe("rowClickEvent", oneventclickrow);
var oneventclickrow = function( args ) {
    ...
}

我想在数据表中当前突出显示的行(最后一次点击的行)上调用订阅rowClickEvent的函数。

我尝试过这样做:

YAHOO.keycoes.myDatatable.getSelectedRows()[0].rowClickEvent()

getSelectedRows() 不返回任何行。如何获取数据表中突出显示的行,然后调用与rowClickEvent关联的函数?

【问题讨论】:

标签: javascript dom-events yui yui-datatable


【解决方案1】:

Here 在我展示 YUI 数据表功能时成为一个强大的应用程序。查看它的源代码以更好地了解我如何使用 YUI 数据表。

我使用类似的助手

var datatableUtils = {
    getSelected:function(datatable) {
        var records = datatable.getRecordSet().getRecords();

        for(var i = 0; i < records.length; i++) {
            if(datatable.isSelected(records[i])) {
                return records[i];
            }
        }

        return null;
    },
    removeAll:function(datatable) {
        var records = datatable.getRecordSet().getRecords();

        for(var i = (records.length - 1); i >= 0; i--) {
            datatable.deleteRow(records[i]);
        }
    },
    removeSelected:function(datatable) {
        datatable.deleteRow(datatableUtils.getSelected(datatable));
    },
    selectAll:function(datatable) {
        var records = datatable.getRecordSet().getRecords();

        for(var i = 0; i < records.length; i++) {
            datatable.selectRow(records[i]);
        }
    }
};

当我想订阅一些事件时,我会这样做

datatable.user.subscribe("rowClickEvent", function(args) {
  /**
    * Keep in mind this keyword refers To YUI datatable instance 
    *
    * args.target allows yui get row clicked
    */

     if(this.isSelected(args.target)) {
         alert("row selected");
     }
}

希望对你有用

【讨论】:

    猜你喜欢
    • 2012-05-17
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2016-06-02
    • 2017-07-01
    • 1970-01-01
    • 2013-12-20
    • 2018-08-28
    相关资源
    最近更新 更多