У меня есть один блок кода, который я хочу вызывать в разных сценариях при нажатии кнопки, в зависимости от того, является ли событие прямым или делегировано.
Но при изменении кода on
него он работает только частично.
У меня есть один код:
$(document).on('click','.selected-option',function(event){
//lot of code
Я хочу использовать:
$('.selected-option').click(function(event){ //lots of code }
Я хочу использовать это вместе:
if (some condition)
{
$(document).on('click','.selected-option',function(event){
}
else
{
$('.selected-option').click(function(event){
}
и хотите использовать тот же код.
Вам не нужно использовать анонимные функции для обработки событий. Просто напишите регулярную функцию:
function handleClick(event) {
// lots of code
}
Затем привяжите функцию к количеству событий, которые вы хотите:
if (some condition) {
$(document).on('click','.selected-option', handleClick);
else {
$('.selected-option').click(handleClick);
}
var testfunction = function(currentObj){
// your code here
}
if (some condition)
{
$(document).on('click','.selected-option',function(event){
testfunction($(this));
});
}
else {
$('.selected-option').click(function(event){
testfunction($(this));
});
}
определить функцию и выполнить задание;
var funCalled = function(){
//your detailed actions
}
и называть его в разных условиях!
if (some condition) {
$(document).on('click','.selected-option',function(event){
funCalled()
})
} else {
$('.selected-option').click(function(event){
funCalled()
});
}
click
к.selected-option
? Если так, то почему бы не поместить условие в вашу функцию?