2013-08-01 2 views
0

검색 필드에 빈 값이있는 경우 툴팁을 표시하려고합니다. 툴팁이 표시된 후 툴팁을 다시 숨기기 위해 본문에 클릭 기능을 바인딩하고 싶습니다. 그러나 click 명령에 bind 명령을 추가 한 후에 어떤 이유로 툴팁이 표시되지 않습니다. 이미 콘솔을 확인했지만 아무런 결과가 없습니다. 여기 내 코드는 다음과 같습니다.jQuery click + if + bind

$('#search_top .search_click').click(function() { 
    if($('#search_top #suchfeld').val() == '') { 
     $('.search_tooltip, .search_tooltip:after').css('display', 'block'); 
     $('.search_tooltip, .search_tooltip:after').addClass('active'); 
     $('body').bind('click', closeTip); 
    } 
    else { 
     $('#search_top').submit(); 
    } 
}); 


function closeTip() { 
     $('.search_tooltip, .search_tooltip:after').css('display', 'none'); 
} 

누구나 아이디어가 있습니까?

+0

돈 ' closeTip 함수에서 closeTip 클릭 핸들러를 바인딩 해제하는 것을 잊지 마십시오. – BNL

+0

http://webdesignledger.com/tips/9-jquery-mistakes-you-shouldnt-commit 4) 5) – Virus721

답변

1

당신이 찾고있는 것은 무엇 :

$('#search_top .search_click').click(function (e) { 
    e.stopPropagation(); 
    if ($('#search_top #suchfeld').val() == '') { 
     $('.search_tooltip').show().addClass('active'); 
    } else { 
     $('#search_top').submit(); 
    } 
}); 

$(function() { 
    $('body').bind('click', closeTip); 
}); 

function closeTip() { 
     $('.search_tooltip').hide(); 
} 
+0

완벽한 감사드립니다. 내가 얻지 못하는 것은 툴팁이 열린 후 트리거하는 closeTip 함수를 바인드하는 함수가있는 이유는 무엇입니까? – Basti

+1

.search_click 이벤트를 클릭하면 body로 전파 된 다음 툴팁을 닫습니다. 그래서'e.stopPropagation();을 사용합니다. –

+0

이 함수에 대해 잘 모릅니다. :-) – Basti

0

:before:after (및 기타 유사 요소)은 자바 스크립트로 액세스 할 수 없습니다. 당신은 다음의 정신에 부모 개체의 클래스를 변경해야합니다 : 나는 이러한 종류의 코드를 사용하지만 보인다 않을 것

div:before { 
    content: 'Lorem ipsum'; 
    display: none; 
} 

div.active:before { 
    display: block; 
} 
+0

확실합니까? 이 문제는 아무런 문제없이 작동합니다. $ ('. search_tooltip, .search_tooltip : after') .css ('display', 'block'); $ ('. search_tooltip, .search_tooltip : after'). addClass ('active'); – Basti

+0

[이 하나] (http://stackoverflow.com/questions/17108475/cant-edit-css-styles-for-before-after)를 포함하여 이미 그것에 대해 몇 가지 질문이있었습니다. – adrenalin