【问题标题】:Is there a way to dynamically detect which element is firing an event in JQuery?有没有办法动态检测哪个元素在 JQuery 中触发事件?
【发布时间】:2015-10-26 09:04:26
【问题描述】:

我有一段代码,可以即时更新用户信息。这与其说是代码异味问题大,但我必须在当前代码中使用具有不同元素的相同代码!我想让这个函数多态以供将来维护(想象一下,如果页面上有 50 多个项目!)

我的理想解决方案看起来像这样(伪代码)

function (/* element firing the save event */, /* changed property on my MVC Model */) {
    $('.ChangedElement').on('save', function (e, params) {
        var Property = $("#ModelProperty").text().replace(" ", "");
        $.ajax({
            type: "POST",
            url: "/Dealer/UpdateDealer",
            data: {
                UpdatedValue: params.newValue,
                UpdatedPropertyName: Property
            },
            async: true,
            success: function (result) {
                alert(JSON.stringify(result));
            }
        });
    });
};

我们将不胜感激任何和所有的帮助,因为我完全不知道从哪里开始。

【问题讨论】:

  • 触发事件的元素在this下的事件处理函数中可用——如果你需要它作为一个jQuery对象,那么$(this)

标签: javascript jquery asp.net-mvc razor frontend


【解决方案1】:

$(this) 将指向调用事件的元素,因此使用属性方法获取元素的 id。

$(this).attr('id')

【讨论】:

  • 我想我也可以使用 $(this).on('save') 吗?
  • 没有。 jquery element.on ("") 将事件附加到一个函数,而不是回调调用该事件的元素。 “保存”也不是 DOM 事件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-23
  • 2011-05-28
  • 2011-12-26
  • 1970-01-01
相关资源
最近更新 更多