클래스를 토글하고 특정 div에 할당 된 CSS 클래스를 기반으로 여러 다른 작업을 수행하려고합니다.CSS 클래스의 존재 여부에 따라 MooTools if/then/else 전환
MooTools 1.2.5를 사용하고 있습니다.
사업부는 다음과 같습니다 : 자바 스크립트와 방문자를위한
<a href="#" class="loginlink">Show/Hide Login</a>
양식이 자동으로 내 스크립트에 의해 숨겨져 활성화 :
<div class="loginbox"> Login Form Here </div>
나는이처럼 보이는 페이지의 링크가 있습니다.
<script type="text/javascript">
window.addEvent('domready',function() {
$$('div.loginbox').addClass('hidden');
$$('a.loginlink').each(function(linkitem){
linkitem.addEvent('click', function(i){
displayis = $$('div.loginbox').hasClass('hidden');
if (displayis) {
$$('div.loginbox').removeClass('hidden');
// do several things
} else {
$$('div.loginbox').addClass('hidden');
// do several other things
};
});
});
});
</script>
"연락처보기/숨기기 로그인"링크가 모든 것을 클릭 처음으로 잘 작동하는 나타나고 클래스 "loginbox"와 사업부가 화면에 나타납니다.
두 번째로 "로그인 표시/숨기기"링크를 클릭하면 아무 일도 일어나지 않습니다. console.log를 사용하여 어떤 일이 일어나고 있는지 알아 내려고합니다. if 문의 첫 부분이 분명히 거짓 일 때 true로 평가됩니다.
위의 스크립트에 대해 궁금한 점은 ID로 "loginbox"를 변경하고 그에 따라 스크립트를 조정하면됩니다. 나는 "loginbox"클래스가 아닌 div가 필요한 CMS를 사용하고 있습니다.
단순히 ".toggleClass ('hidden')"을 사용하면 클래스를 전환하는 것 이상을 원할뿐입니다.
감사합니다.
-Brent
'if (displayis) {'를 (if displayis == "true") { '로 변경하여 문제를 해결했습니다. 왜 그런지 잘 모르겠다. – brent
이 getElement ("div.loginbox, div.hidden")를 테스트하면 div.loginbox가 항상 발견되지만 div.hidden이 적용되었는지 여부는 알 수 없습니다. if/else 문의 실행 부분을 결정하기 위해 알아야합니다. – brent
http://jsfiddle.net/gbP9F/ -이 부분을 확인하십시오. 미안, 내가 선택기를 엉망으로했다. 지금은 잘 작동합니다. 그리고이 바이올린은 왜 틀린가를 보여 줄 것입니다. 아마도 틀린 것의 배열을 반환 할 것이기 때문입니다. –