関数コードが同じなら関数宣言して2回呼び出せばいいでしょう。
HTML
1<select class="hoge">
2 <option>1</option>
3 <option>2</option>
4 <option>hoge</option>
5 <option>moge</option>
6</select>
7
8<script>
9'use strict';
10jQuery(function (jQuery) {
11 function handleChange (event) {
12 this.value = this.value === '1' ? 'hoge' : 'moge';
13 }
14
15 jQuery('.hoge').each(handleChange).on('change', handleChange);
16});
ただ、異なる関数を一つにまとめると、共通性のない拡張を加える際に再び関数を分割する事になって管理性が落ちるので、私であれば2つの関数を書きます。
JavaScript
1jQuery(function (jQuery) {
2 jQuery('.hoge').val(function (i, value) {
3 return value === '1' ? 'hoge' : 'moge';
4 }).on('change', function handleChange (event) {
5 var currentTarget = event.currentTarget;
6 currentTarget.value = currentTarget.value === '1' ? 'hoge' : 'moge';
7 });
8});
素朴な疑問ですが、このコードではユーザが 'hoge' をセットした場合に 'moge' に上書きされますが、期待通りの動作なのでしょうか。
普通に考えると select の選択肢を hoge, moge の2つにするだけでJavaScriptコードを書かずとも解決するのですが…。
Re: rainbowsix さん
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。