我的页面上有多个表单,其中包含以下功能:
$('#pageContainer').on('input propertychange change', '#form1', function() {}
在这个函数中,我进行了11个函数调用,为11个不同的textarea
框格式化文本。我不需要打电话给所有11,只需要改变那些需要格式化的那个。
有没有办法弄清楚表单的哪个部分已被更改,这使得函数调用以便我可以调用正确的(11个中的1个)函数,或者根本没有函数?
基本上,如果textarea 1-11是调用.on()
的输入,则调用该特定函数。如果没有,请不要打电话。
答案 0 :(得分:3)
您可以使用event.target找出导致更改事件的元素。
$('#pageContainer').on('input propertychange change', '#form1', function(e) {
var elementId = e.target.id;
//Do you actions based on this
}
答案 1 :(得分:0)
我不认为检查这些东西有一个很好的方便,但你可以在onChange事件上分配一个事件处理程序,这可以将$(this).attr("id")
添加到数组中。然后,您可以构建基于该数组的选择器?
例如
var changes = [];
$("input").on('change', function() {
changes.push($(this).attr(id));
});
function yourFormattingFunction() {
var selector = "#" + changes.splice(", #");
$(selector).each(function() {
//...Do your formatting here
});
}
可以做出明显的改进,例如确保列表是唯一的等等,以改善这一点......