You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jqWidgets Grid事件问题:限制rowselect触发源及阻止自动rowunselect

解决方案

问题1:让rowselect仅响应鼠标点击,排除代码调用selectrow的情况

jqWidgets通过代码调用selectrow方法触发的rowselect事件,其事件对象不包含鼠标操作相关的原始事件(originalEvent),而鼠标点击触发的事件会携带MouseEvent类型的originalEvent。基于此可以区分两种触发场景:

修改你的rowselect事件绑定代码如下:

$(document).on("rowselect", "#jqxgrid", function (e) {
    // 过滤掉代码调用selectrow触发的事件
    if (!e.originalEvent || !(e.originalEvent instanceof MouseEvent)) {
        return;
    }

    // 这里编写鼠标点击选中行时需要执行的逻辑
});

问题2:阻止非鼠标操作触发的rowunselect

默认选中新行时,之前选中的行会触发rowunselect事件。若需仅在主动通过鼠标取消选中时执行逻辑,同样通过事件来源判断实现:

$(document).on("rowunselect", "#jqxgrid", function (e) {
    // 过滤掉非鼠标操作触发的取消选中事件
    if (!e.originalEvent || !(e.originalEvent instanceof MouseEvent)) {
        return;
    }

    // 这里编写鼠标取消选中行时需要执行的逻辑
});

同时请确保Grid的selectionmode配置为行相关模式,避免因模式错误导致异常触发:

$("#jqxgrid").jqxGrid({
    selectionmode: 'singlerow', // 按需选择singlerow/multiplerows
    // 其他配置项...
});

内容的提问来源于stack exchange,提问作者Mert Buyukeryılmaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 20:26:11