2016-06-18 4 views
0

1つのコードをクリックして変更することは可能ですか? Jqueryをクリックして変更する

$(document).on("click", "button.options_buy",function(event) { 

// same code 
} 


$(document).on("change", "select.options_buy",function(event) { 

// same code 
} 

は私がしようと、この

$(document).on("click change", "button.options_buy,select.options_buy",function(event) { } 

のみ 'button.options_buy' と 'select.options_buy'

ことが可能であるための '変更' のためそれは動作しますが、私は 'クリック' したいですか?

あなたが複数のイベントに関数をバインドする)(.on使用することができます

答えて

2

それを行うための最善の方法は、あなたが持っているように2つのイベントハンドラを持つことであるが、唯一のそれぞれから呼び出される共通の機能があります。

$(document).on("click", "button.options_buy",function(event) { 
    commonFunction(); 
}) 


$(document).on("change", "select.options_buy",function(event) { 
    commonFunction(); 
}) 

function commonFunction(){ 
//common function code 
} 
+0

あなたにも無名関数を取り除くと、ちょうど '$(文書).on( "変更"、 "select.options_buy"、commonFunction)を行う可能性があります;' –

+0

@Matis Lepik - 私は行くつもりだったが、そこに他の機能があった場合(OPは投稿に含まれていなかった)、共通の機能 – gavgrif

0

$('#foo').on('keypress click change', function(e) { 
     // 
    }); 

OR関数を宣言し、各イベント

$('#foo') 
    .change(myFunction) 
    .click(myFunction) 
    .blur(myFunction) 

のためにそれを呼び出すjQueryの.bind()

$("#foo").bind({ 
    click: function() { 
    // Do something on click 
    }, 
    mouseenter: function() { 
    // Do something on mouseenter 
    } 
}); 

または

$("#foo").bind("mouseenter mouseleave", function() { 
    $(this).toggleClass("entered"); 
}); 
0

を私はあなたのコードを拡張したいと思います。

$(document).on("click change", "button.options_buy,select.options_buy",function(event) {   
    if(event.type=="click"){ 
     someFunction(); 
    } else if(event.type=="change"){ 
     someFunction(); 
    } 

}

関連する問題