14

私には次の2つの機能があります。

$("input").keypress(function(event) {
   if (event.which == 13) {
   //code        
   }       
});

$('#login_submit').click(function () {        
   //code                    
});

関数で使用されているコードはまったく同じコードであり、基本的にはコードの重複です。だから私はこれらの関数をORステートメントと組み合わせる方法があるかどうか疑問に思っていましたか?

4

5 に答える 5

28

独自のコールバックを作成し、それをイベントハンドラーに渡します。

var callback = function() {...};

$("input").keypress(function() {
    if (event.which == 13) callback();
});

$('#login_submit').click(callback);
于 2013-02-03T16:14:20.620 に答える
10

HTML にクラスを追加する

<input class="myClass">
<div id="login_submit" class="myClass" ></div>

これで、次のように記述できます。

$(".myClass").bind("keypress click", function(){});

または、次のようにします。

$("input").add("#login_submit").bind("keypress click", function(){});

入力をクリックすると、これもトリガーされることに注意してください。

于 2013-02-03T16:21:35.417 に答える
2

こんな風にやってみませんか?

$("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によるコールバックソリューションは、もう少しエレガントです。

于 2013-02-03T16:14:44.550 に答える
1

次のようなイベントを連鎖させます。

        var watchCurrentCursorPosition = function (){
            console.log("foo");
        }
        $("input").keypress(
            watchCurrentCursorPosition

        ).click(
            watchCurrentCursorPosition
        );
于 2015-10-05T09:57:20.580 に答える