/ / jQuery वर्ग जोड़ रहा है और क्लिक कर रहा है लेकिन एक ही समय में क्लिक के रूप में व्यवहार कर रहा है - jquery, html

jQuery वर्ग जोड़ रहा है और क्लिक कर रहा है लेकिन एक ही समय में क्लिक के रूप में व्यवहार कर रहा है - jquery, html

मेरे पास एक बैक बटन है जो निम्न HTML का उपयोग करता है:

<div class="back-from-professors level-one">Back</div>

मैं बैक एक्शन लागू करने के लिए निम्न jQuery का उपयोग करता हूं:

jQuery(".research-box-container").on("click", ".back-from-professors.level-one", function() {
jQuery(".professor").removeClass("show");
jQuery(".professor-list").hide();
jQuery(".research-box-inner-sections-container").show();
jQuery(".capability-list").removeClass("temporary-hide");
});

मैं तब निम्नलिखित को लागू करना चाहता हूं जब

jQuery(".professor-list").on("click",".professor.show", function() {

jQuery(this).parent().find(".back-from-professors").addClass("level-two");
jQuery(this).parent().find(".back-from-professors").removeClass("level-one");
jQuery(this).next().addClass("show");
jQuery(this).removeClass("show");

});

jQuery(".professor-list").on("click",".back-from-professors.level-two", function() {

jQuery(this).parent().find(".grey-list-item.professor").addClass("show");
jQuery(this).parent().find(".grey-list-professor-details").removeClass("show");
jQuery(this).removeClass("level-two");
alert("test");
jQuery(this).addClass("level-one");

});

हालाँकि जब मैं क्लिक करता हूँ .back-from-professors.level-two यह अपेक्षित रूप से कर रहा है और फिर सतर्क कर रहा है test. यह तब वर्ग जोड़ता है level-one लेकिन फिर भी उपरोक्त मेरे पहले jQuery कोड से कार्रवाई करता है, यानी यह क्रियाओं को लागू करता है jQuery(".research-box-container").on("click", ".back-from-professors.level-one", function() {});

क्या ऐसा होना चाहिए .on()?

मैं यहां समस्या को दोहराने में सक्षम हूं ... http://jsfiddle.net/tb8uLpnL/4/ (jsfiddle अपडेट किया गया)

उत्तर:

जवाब के लिए 0 № 1

आपका मुद्दा है .professor-list अंदर है .research-box-container. तो जब आप क्लिक करते हैं back, यह जुड़ी घटनाओं के लिए बुलबुले बनाता है .professor-list जिसे आप पकड़ते हैं: -

jQuery(".professor-list").on("click",".back-from-professors.level-two", function() {

जिसे आप तब जोड़ते हैं .level-one भी। फिर जब यह अगले तत्व पर फिर से बुलबुला हो जाता है .research-box-container संलग्न घटनाएं

jQuery(".research-box-container").on("click", ".back-from-professors.level-one", function() {

कक्षा के भीतर एक तत्व पाता है .level-one.

सबसे आसान समाधान भी दोनों को संलग्न करना है .research-box-container.

इसलिए:-

jQuery(".research-box-container").on("click", ".back-from-professors.level-one", function() {

jQuery(".research-box-container").on("click",".back-from-professors.level-two", function() {