저는 JQuery (C#)를 처음 사용하며 여기에서 잘못된 것을 볼 수 없습니다.리팩토링 후 JQuery 함수가 제대로 작동하지 않습니다.
다음과 같은 JQuery를 사용하여 햄버거 메뉴를 토글하고 디머 효과를 넣고 Body로 스크롤하는 것을 방지합니다. 햄버거는 또한 3 개의 가로선에서 X까지 움직입니다. 첫 번째 JQuery (아래)에서는 잘 작동합니다. 그러나 나는 이걸 정제하고 두 번째 JQuery에 대한 코드를 정리하려고 노력 해왔다.이 코드는 내게 훨씬 깨끗해 보인다. (미래 함수를 염두에 둔다.) 그러나 내가 이것을 할 때 햄버거가 X에서 더 이상 애니메이트되지 않는 것을 제외하고는 모든 것이 여전히 작동합니다. 어쨌든 뉴비 JQuery의 눈에는 왜 눈에 띄는 차이가 없으므로 실제로 볼 수 없습니다.
또한 나는 또한 다음 코드 2 줄이도이 같은 함수에 필요한 있는지 알고 싶어요 초보자로서 :
e.preventDefault();
event.stopPropagation();
JQuery와 (작품) :
jQuery(document).ready(function() {
jQuery('#toggle-nav').click(function (e) {
event.stopPropagation();
jQuery(this).toggleClass('active');
jQuery('.menu ul').toggleClass('active');
jQuery('.hamburger ul').toggleClass('active');
jQuery('.dimmer').toggleClass('active');
jQuery('body').toggleClass('no-scrolling');
e.preventDefault();
});
});
JQuery와 (작동하지 않습니다) :
jQuery(document).ready(function() {
jQuery('#toggle-nav').click(function(e) {
toggleNav();
function toggleNav() {
event.stopPropagation();
jQuery(this).toggleClass('active');
jQuery('.menu ul').toggleClass('active');
jQuery('.hamburger ul').toggleClass('active');
jQuery('.dimmer').toggleClass('active');
jQuery('body').toggleClass('no-scrolling');
e.preventDefault();
}
});
});
당신은'event.stopPropagation()'을 사용해서는 안되며'e.stopPropagation()'이어야합니다. 또한 이벤트 처리기 자체 내에서 정의 된 새 함수로 코드를 이동하면 해당 함수가 클릭 할 때마다 재정의 될 것이므로 어리석은 것처럼 보입니다. –
답변 주셔서 감사합니다. 내가하고 있었던 일. – Damo