我有以下两个功能:
$("input").keypress(function(event) {
if (event.which == 13) {
//code
}
});
$('#login_submit').click(function () {
//code
});
在函数中使用的代码完全是相同的代码,基本上是代码发布。所以我想知道是否有办法将这些函数与OR语句结合起来?
答案 0 :(得分:17)
创建自己的回调并将其传递给事件处理程序。
var callback = function() {...};
$("input").keypress(function() {
if (event.which == 13) callback();
});
$('#login_submit').click(callback);
答案 1 :(得分:8)
在HTML中添加一个类
<input class="myClass">
<div id="login_submit" class="myClass" ></div>
现在你可以写:
$(".myClass").bind("keypress click", function(){});
或者这样做:
$("input").add("#login_submit").bind("keypress click", function(){});
请注意,点击输入也会触发此操作。
答案 2 :(得分:1)
为什么不这样做?
$("input").keypress(function(event) {
if (event.which == 13) {
foospace.yourfunction();
}
});
$('#login_submit').click(function () {
foospace.yourfunction();
});
var foospace={};
foospace.yourfunction=function() {
alert("your code goes here!");
}
修改强>
@David的回调解决方案稍微优雅一点。
答案 3 :(得分:0)
我会将事件链接起来:
var watchCurrentCursorPosition = function (){
console.log("foo");
}
$("input").keypress(
watchCurrentCursorPosition
).click(
watchCurrentCursorPosition
);
答案 4 :(得分:0)
对于那些仍在寻找@Sino问题的答案的人。
函数中使用的代码完全相同,基本上是代码复制。所以我想知道是否有一种方法可以将这些功能与OR语句组合在一起?
使用jQuery documentation方法是可行的。
说明:将一个或多个事件的事件处理函数 附加到所选元素。
因此您的代码可以像这样:
$("input").on("click keypress", function(event) {
if (event.which === 13) {
event.preventDefault();
//code
}
});