2017-06-14 48 views
-5

下面是我的jQuery代码,我想这两个功能合并为1如何合并2个jQuery函数

$("#first_name").change(function() { 
    $('.showvalue').text("First Name Successfully Updated."); 
}); 

$("#last_name").change(function() { 
    $('.showvalue').text("last Name Successfully Updated."); 
}); 
+0

你需要在你想要做什么更清晰处理多元素。你在寻找某种通用函数来处理所有.change()事件吗? –

+0

如果您认为您的问题已被回答,请按“✔”按钮选择其中一个答案作为接受的答案。 – leroydev

回答

2

这将显示“名成功更新。”名字和“姓氏成功更新”。对于姓氏:

var names = ['First', 'Last']; 
for (var i = 0; i < names.length; i++) { 
    var name = names[i]; 
    $("#" + name.toLowerCase() + "_name").change(function() { 
    $('.showvalue').text(name + " Name Successfully Updated."); 
    }); 
} 

因此,这将保持您的字段名称的大小写。

该解决方案也很容易扩展更多的领域。

2

合并选择器,然后在事件处理程序检查ID,以确定要使用哪个消息:

$("#first_name, #last_name").change(function() { 
    var prefix = this.id === 'first_name' ? 'First' :'Last'; 
    $('.showvalue').text(prefix + " Name Successfully Updated."); 
}); 
+0

作品:)。非常感谢。 –

1

您可以使用类选择

(例如重新使用的javascript的元件相同功能的类:changeTrigger)。

<p>First Name <input type="text" id="first_name" class="changeTrigger" data-ref="First Name"/></p> 
<p>Last Name <input type="text" id="last_name" class="changeTrigger" data-ref="Last Name"/></p> 
<p class='showvalue'></p> 

其次,定义一个函数在同一类

$(".changeTrigger").change(function(){ 

    //You may use data-ref to attach "FIELD NAME" on element. 
    var refName = $(this).data("ref"); 

    $('.showvalue').text(refName + " Successfully Updated."); 
}); 

https://jsfiddle.net/u3f8505q/