elize
elize

Reputation: 425

Jquery combine click and change

Is it possible listen click and change for one code?

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

//   same code
}


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

//   same code
}

I try this

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

It works but I want 'click' only for 'button.options_buy' and 'change' for 'select.options_buy'

is it possible?

Upvotes: 0

Views: 1417

Answers (3)

Sanu Uthaiah Bollera
Sanu Uthaiah Bollera

Reputation: 937

I would like to extend your code.

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

}

Upvotes: 1

Kld
Kld

Reputation: 7068

You can use .on() to bind a function to multiple events:

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

OR declare a function and call it for each event

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

jQuery .bind()

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

OR

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

Upvotes: 0

gavgrif
gavgrif

Reputation: 15499

Best way to do it is to have two event handlers as you have, but only have a common function that is called from each:

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


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

function commonFunction(){
//common function code
}

Upvotes: 2

Related Questions