Elbette, komut dosyanızın başka bir yerinde, "tıklama" olayı, diğer birkaç yanıtın / yorumun önerdiği gibi, aynı öğeye yeniden bağlanıyor.
Benzer bir sorun yaşadım ve bunu doğrulamak için, console.logaşağıdaki kod parçacığında olduğu gibi komut dizime bir komut ekledim :
$("#link_button")
.button()
.click(function () {
console.log("DEBUG: sliding toggle...");
$("#attachmentForm").slideToggle("fast");
});
Düğmeye tıkladığınızda, tarayıcınızın geliştirici konsolundan aşağıdaki resme benzer bir şey görürseniz (benim yaptığım gibi), click()etkinliğin aynı düğmeye iki kez bağlandığından emin olursunuz .

Hızlı bir yamaya ihtiyacınız varsa, diğer yorumcular tarafından önerilen off( unbindjQuery 3.0'dan beri btw kullanımdan kaldırılmıştır) çözüm, (yeniden) bağlamadan önce olayı çözmek için iyi çalışıyor ve ben de tavsiye ederim:
$("#link_button")
.button()
.off("click")
.click(function () {
$("#attachmentForm").slideToggle("fast");
});
Ne yazık ki, bu yalnızca geçici bir yama! Sizi patron mutlu etme sorunu çözüldüğünde, kodunuzu biraz daha araştırmalı ve "çoğaltılmış bağlama" sorununu gidermelisiniz.
Gerçek çözüm elbette sizin özel kullanım durumunuza bağlıdır. Benim durumumda, örneğin, bir "bağlam" sorunu vardı. Belgenin belirli bir bölümüne uygulanan bir Ajax çağrısının sonucu olarak işlevim çağrılıyordu: tüm belgeyi yeniden yüklemek aslında hem "sayfa" hem de "öğe" bağlamlarını yeniden yüklüyordu, bu da olayın öğeye iki kez bağlanmasıyla sonuçlanıyordu .
Bu sorunun çözümü benim jQuery kaldıraç oldu biri aynıdır işlevi, üzerindeki olay ilk çağırma sonra otomatik olarak ilişkisiz olduğunu hariç. Bu benim kullanım durumum için idealdi, ancak yine, diğer kullanım durumları için çözüm olmayabilir.