2011-11-15 5 views
0

는 자바 스크립트와 jQuery를에 초보자이기 때문에, 나는이 전혀 불가능하거나 그냥 완전히 바보 같은 실수를하고있는 중이 여부를 확실하지 않다 div 외부jQuery를 +하지 선택기

나는 데모 목적을 위해 코드를 단순화 :

HTML을

<html> 
    <div class="tooltip"> 
     Bla Bla Bla 
    </div> 
</html> 

jQuery를

$('html:not(.tooltip)').click(function() { 

    $('.tooltip').hide(); 

}); 

데모

당신이 html:not(...) 말할 때, 당신은 당신의 선택 일치하지 않는 모든 html 요소를 찾고 있습니다

$('html :not(.tooltip)') 

:

http://jsfiddle.net/yCx6F/1/

+0

나는 내가 확신 할 수없는 내 아이 패드에있어하지만 클릭과 같은 HTML 요소에 바인딩되어 있지 않습니다. 다른 div를 추가하여 테스트 해보십시오. –

답변

2

나는 이런 식으로 뭔가 할 거라고 :

$(document).click(function(ev) { 
    if (!$(ev.target).is('.tooltip')) $('.tooltip').hide(); 
}); 
+0

작동! 지금까지 너와 벤더의 대답이 효과가있는 것 같다. 내가 말했듯이, 초보자와 숙모는 실제로 어느 것이 더 나은 대답인지 결정합니다. – Andrej

+0

그의 솔루션은 명확하고 작동하므로 어쩌면 당신은 처음에 대답 한 사람이나 당신이 더 안색이 좋은 사람을 데리러 올 수 있습니다. – gustavotkg

+0

당신의 것을 선택했는데 다른 사람이 이것을 읽고 있다면 : ('.tooltip' 대신에) 텍스트를 클릭했을 때 자식 요소 ('.tooltip p')가 셀렉터에 도착했습니다. – Andrej

5

은 공간을 추가합니다.

공간을 추가하면 html 요소의 하위 항목이 검색됩니다. 이는 원하는 것입니다.

이 당신이 원하는 않는 경우를 참조하십시오 : http://jsfiddle.net/yCx6F/2/


사실, 당신이이 일을해야합니다 당신은 공간을 놓치고

$('.tooltip').click(function(e) { 
    e.stopPropagation(); 
}); 

// Once the `<div>` is created, in the same function: 

$(document).one(function() { 
    $('.tooltip').hide(); 
}); 
+0

'.tooltip'을 클릭해도 여전히 사라집니다. – Andrej

+0

업데이트 된 답변보기 – Blender

+0

감사합니다. @Blender - 편집 된 스크립트를 사용하면 효과가 있습니다. – Andrej

0

.


$('html:not(.tooltip)').click(function() { 

$('html :not(.tooltip)').click(function() { 

    $('.tooltip').hide(); 

}); 

$('html :not(.tooltip)').click(function() { 

.tooltip가되지 않는 HTML 내의 모든 요소를 ​​의미 .tooltip되지 않은 HTML 요소를 의미


Example here

+0

@Blender의 대답에 대한 내 의견보기. 여전히 사라지고 있습니다. – Andrej

2

이 시도를 ...

$('*:not(.tooltip)').click(function() { 
    $('.tooltip').hide(); 
}); 

$('.tooltip').click(function(e) { 
    e.stopPropagation(); 
}); 
+0

불행히도, 작동하지 않습니다! 블렌더의 대답이 트릭을 한 이후로는 신경 쓰지 마라. – Andrej

+0

당신 말이 맞아요. JSFiddle에서 숨기기 대신 경고음을 사용하여 시도해 보았지만 숨김이 작동하지 않았습니다. 나는 그것을 올바르게 만들고 블렌더의 대답에 대한 대안을 제공하기 위해 나의 대답을 업데이트했다. 그의 대답은 나에게 잘 들리지만, 툴팁이라면 one() 메서드 (한 번만 작동 할 것입니다)를 사용하고 싶지는 않습니다. – Brian

+0

노력에 감사드립니다! 지금은 잘 작동합니다! – Andrej