2016-12-06 14 views
-5

私の問題は、私は同じことをするが、異なるオブジェクトの2つの機能を持っていることです。2つの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を持っているところ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 
}); 

に適用します基本的には、これは他のロジックを追加するときに同じことをする関数を使用する方法です。繰り返すロジックを実行する基本関数を作成してから、そのロジックの残りの部分を手続き的に記述するのが最善の方法です。このように、対処するほうがはるかに簡単です。

関連する問題