【问题标题】:javascript events fired in wrong order in IE8 and IE7 (Telerik radgrid)javascript 事件在 IE8 和 IE7 中以错误的顺序触发 (Telerik radgrid)
【发布时间】:2012-03-15 16:30:49
【问题描述】:

我正在使用 Telerik radgrid 并连接了许多方法,如下所示。

在 firefox、chrome 和 IE9 中,事件按以下顺序触发:

RowClick
RowSelecting
RowSelected

在 IE8 和 IE7 中,事件按以下顺序触发:

RowSelecting
RowSelected
RowClick

有没有办法重新排序 IE8 和 IE7 中的事件?

var originalClickedRowState = null;
var clickedRow = null;

function rgGrid_OnRowCreating(sender, args) {}
function rgGrid_OnRowCreated(sender, args) {}

function rgGrid_OnRowClick(sender, args) {
    clickedRow = args.get_gridDataItem();
    originalClickedRowState = args.get_gridDataItem().get_selected();
}

function rgGrid_OnRowDeselecting(sender, args) {
    if (clickedRow != null && clickedRow != args.get_gridDataItem()) {
       args.set_cancel(true);
    }
}

function rgGrid_OnRowSelecting(sender, args) {
    if (clickedRow == args.get_gridDataItem() && originalClickedRowState) {
        args.set_cancel(true);
    originalClickedRowState = null;
    clickedRow = null;
}
}

function rgGrid_OnRowSelected(sender, args) {
    originalClickedRowState = null;
    clickedRow = null;    
}

我在 radgrid 中连接了这些方法

<ClientSettings >
    <Selecting AllowRowSelect="True"  />
    <ClientEvents
        OnRowCreated="rgGrid_OnRowCreated"
    OnRowCreating="rgGrid_OnRowCreating" 
    OnRowClick="rgGrid_OnRowClick" 
    OnRowDeselecting="rgGrid_OnRowDeselecting"
        OnRowDeselected="RowDeselected"
        OnRowSelecting="rgGrid_OnRowSelecting"
       OnRowSelected="rgGrid_OnRowSelected" />                                           
    <Scrolling AllowScroll="True" />
</ClientSettings>

编辑: 我已经编辑了问题以显示我正在使用的代码。我的事件在 radgrids 事件之前被调用。 我需要以正确的顺序触发事件,因为我需要在确定是否应取消选择任何其他行之前获取选择了哪一行。

我从telerik 上的这个论坛帖子中获得了代码,但我对 Telerik 的了解不够,无法重写我必须在 IE8 和 IE7 中工作的代码。

【问题讨论】:

    标签: javascript internet-explorer-8 internet-explorer-7 telerik telerik-grid


    【解决方案1】:

    您不应依赖应用程序中的事件顺序。

    看看这个:http://www.quirksmode.org/js/events_order.html

    【讨论】:

    • 就最佳实践而言,您的回答是正确的,但它不能解决问题。
    猜你喜欢
    • 2014-11-09
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多