2014-10-08 49 views
1

我的目標是在輸入值改變或單擊按鈕時執行某些操作。如何檢測按鈕是否已被點擊或者輸入的值是否已經使用jQuery更改?

我知道如何分開實施這些。例如:

$('form :input').change(function() { 
    // Do something. 
}); 

$('button').click(function() { 
    // Do something. 
}); 

但我該如何將它們一起實施?下面是我想要實現一些僞代碼示例:

if (button is clicked) OR (input value changed) { 
    // Do something. 
} 

回答

0

如何定義一個函數,只是調用在任何情況下同樣的功能?

事情是這樣的:

function f() { 
    // do your stuff 
} 

$('form:input').change(f); 
$('button').click(f); 
+0

你能提供一個例子嗎? – henrywright 2014-10-08 22:01:31

+0

剛做完並更新了帖子。 – MightyMouse 2014-10-08 22:04:47

1

您可以通過相同的功能的處理程序。

function clickOrChangeHandler() { 
    // do something 
} 

$('form:input').change(clickOrChangeHandler); 

$('button').click(clickOrChangeHandler); 
+0

感謝和+1的答案! – henrywright 2014-10-08 22:11:14

0

委派事件將使結合兩種選擇器和事件:

$(document).on('change click', 'form :input, button', function() { 
    // Do something. 
    alert("event from " + this.outerHTML); 
}); 

然而,這將對於一個複選框觸發兩次(變化和點擊)。

JSFiddle:http://jsfiddle.net/TrueBlueAussie/zqvs0ne9/1/

+0

我的許多輸入字段恰好是複選框......有沒有辦法繞過雙觸發器? – henrywright 2014-10-08 22:34:51

+0

@henrywright:不幸的是,如果不在處理程序中添加額外的檢查。你標記爲答案的是最簡單的方法。這只是爲了讓你知道替代:) – 2014-10-08 22:47:17

+0

啊好吧。感謝您的信息,我相信我可以在另一個項目中使用它! – henrywright 2014-10-09 00:05:45

相關問題