0

由于 AJAX 回调,我有多个 HTML 片段插入到我的 DOM 中。

这些片段中的每一个都将包含一个类别为“数量”的文本框。

我想要做的是创建一个“on change”事件处理程序,只要这些文本框的文本值之一发生更改,就会触发该事件处理程序。但是,当该事件被触发/处理时,我需要知道更新了哪个特定的文本框。

好的,使用 jQuery,我的“Lists.initHandlers”方法中触发了以下内容:

$(document).on('change', $('#divABC').find(".quantity"), List.quantityChanged);

当我更新数量时,我的“List.quantityChanged”事件处理程序会愉快地触发。

问题是当我在事件处理程序中引用“this”时,我得到的是整个文档,而不是触发事件的元素。

我尝试使用类似于以下的语法来捕获元素:

$(document).on('change', $('#divABC').find(".quantity"), {ctrl: this}, List.quantityChanged);

但是当我尝试这样做时,处理程序永远不会被触发(即使我将签名更改为期望一个参数)。

这里的任何指导将不胜感激。

谢谢

格里夫

4

2 回答 2

0

尝试这个:

  $('.quantity').live('change', function(){
        alert('New value: ' + $(this).val());
  });
于 2013-04-29T12:13:43.063 回答
0

传递this给您的函数:

$(document).on('change', $('#divABC').find(".quantity"), function () {
    List.quantityChanged(this);
});
于 2013-04-29T12:33:25.993 回答