我有以下两个功能:
$("input").keypress(function(event) {
if (event.which == 13) {
//code
}
});
$('#login_submit').click(function () {
//code
});
函数中使用的代码完全相同,基本上是代码复制。所以我想知道是否有办法将这些函数与 OR 语句结合起来?
我有以下两个功能:
$("input").keypress(function(event) {
if (event.which == 13) {
//code
}
});
$('#login_submit').click(function () {
//code
});
函数中使用的代码完全相同,基本上是代码复制。所以我想知道是否有办法将这些函数与 OR 语句结合起来?
创建您自己的回调并将其传递给事件处理程序。
var callback = function() {...};
$("input").keypress(function() {
if (event.which == 13) callback();
});
$('#login_submit').click(callback);
向您的 HTML 添加一个类
<input class="myClass">
<div id="login_submit" class="myClass" ></div>
现在你可以写:
$(".myClass").bind("keypress click", function(){});
或者这样做:
$("input").add("#login_submit").bind("keypress click", function(){});
请注意,单击输入也会触发此操作。
你为什么不这样做呢?
$("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 的回调解决方案稍微优雅一些。
我会像这样链接事件:
var watchCurrentCursorPosition = function (){
console.log("foo");
}
$("input").keypress(
watchCurrentCursorPosition
).click(
watchCurrentCursorPosition
);
对于那些仍在寻找@Sino 问题答案的人。
函数中使用的代码完全相同,基本上是代码复制。所以我想知道是否有办法将这些函数与 OR 语句结合起来?
JQuery .on()方法是要走的路。
描述:将一个或多个事件的事件处理函数附加到选定元素。
所以你的代码可以是这样的:
$("input").on("click keypress", function(event) {
if (event.which === 13) {
event.preventDefault();
//code
}
});