2016-06-18 2 views
0

Возможно ли прослушивание и изменение одного кода?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

это возможно?

ответ

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

Вы могли бы также избавиться от анонимной функции и просто сделать '$ (документ) .На ("изменение", "select.options_buy", commonFunction);' –

+0

@Matis Лепик - Я собирался, но не в том случае, если там были другие функции (которые OP не включал в сообщение), которые также должны были работать, а также общая функция – gavgrif

0

Вы можете использовать .он(), чтобы связать функцию к нескольким событиям:

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

ИЛИ объявить функцию и вызвать его для каждого события

$('#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"); 
}); 
0

Я хотел бы расширить свой код.

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

}

Смежные вопросы