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

SugarCRM(Backbone.js):自定义事件中无法获取user_id属性求解决

解决Backbone.js SugarCRM中获取自定义user_id属性的问题

直接获取的正确方法

你之前的代码把DOM元素转成JSON再解析完全是多余的操作,e.currentTarget本身就是被点击的<li> DOM元素,直接调用原生方法或jQuery方法就能拿到属性值:

方法1:原生JavaScript

getselectedUser: function(e) {
    // 直接从当前点击的li元素获取user_id属性
    const userId = e.currentTarget.getAttribute('user_id');
    console.log(userId);
}

方法2:Backbone/jQuery方式

利用Backbone集成的jQuery,将DOM元素转为jQuery对象后获取属性:

getselectedUser: function(e) {
    const userId = this.$(e.currentTarget).attr('user_id');
    console.log(userId);
}

更规范的写法(推荐)

按照HTML5规范,自定义属性建议使用data-*前缀,兼容性更好也更符合标准:

  1. 修改动态生成li的代码:
_.each(data.users, function (user) {
    list += '<li data-user-id="' + user.id + '"> ... </li>';
});
   
this.$('.usersLegend ul').html(list);
  1. 对应的获取方式:

原生JS

getselectedUser: function(e) {
    const userId = e.currentTarget.dataset.userId;
    console.log(userId);
}

jQuery方式

getselectedUser: function(e) {
    const userId = this.$(e.currentTarget).data('user-id');
    console.log(userId);
}

为什么原来的代码失效?

你之前将e.currentTarget转为JSON字符串后再解析,这个过程会丢失DOM元素的属性信息,而且完全没必要——e.currentTarget本身就是现成的DOM对象,直接操作即可。

内容的提问来源于stack exchange,提问作者neeraj

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:33:16