2016-12-06 2 views
-5

Моя проблема в том, что у меня есть две функции, которые делают то же самое, но для разных объектов.Как добавить две функции JQuery?

вот код.

$('body').on('click', '.toogle1', function() { 
    $('body').find('.buttonshow').slideToggle(300); 
    $('body').find('.buttonshow ').val(title); 
}); 

$('body').on('click', '.toogle', function() { 
    $('body').find('.htmlshow').slideToggle(400); 
}); 
+5

Но они не делают то же самое ...? – Taplar

+2

И что вы пробовали? Где твоя проблема? – krillgar

+1

*** «кто делает то же самое вместе» *** - Ваш код не согласен с вашими заявлениями –

ответ

1
$('body').on('click', '.toggle, .toggle1', function(){ ... }); 

Это приведет к логике стрельбы для любого ребенка, который имеет класс «тумблер» или «toggle1».

0

Я не знаю свой HTML код, но где у вас есть класс toggle добавить 2-й класс toggle1 поэтому окончательный класс будет class="toggle toggle1", а затем:

$('body').on('click', '.toogle1', function() { 
    $('body').find('.buttonshow').slideToggle(300); 
    $('body').find('.buttonshow ').val(title); 
    $('body').find('.htmlshow').slideToggle(400); 
}); 

Но если у вас есть другая CSS в этом классе, используйте другой ответ.

0

Просто создать функцию, которая будет использоваться вместо Anonimous функции вы передаете в конце:

function toggleElement(selector, ms){ 
    selector.slideToggle(ms); 
} 

И потом, вы просто применить его к JQuery

$('body').on('click', '.toogle1', function(){ 
    toggleElement($('.buttonshow'), 300); 
    // Then, the rest of your logic that differs 
}); 

Так в основном, это то, как вы используете функцию, которая делает то же самое, добавляя другую логику, лучший способ - создать базовую функцию, которая выполняет логику, которая будет повторяться, а затем вы процедурно пишете остальную часть своей логики, которая отличается , Таким образом, с этим гораздо легче справиться.

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