2012-01-20 5 views
0

질문/문제가 있습니다. 어떤 점에서 나는 모든 요소가 아닌 클릭 한 사업부를 제외한 것을 필요로하고 내가 가진 다음 MainDiv에서 실행 취소 (function() {return false;})

$('#MainDiv *:not(#Div)').click(function() {return false;}); 

내가 여러 가지 다른 요소가 (A, IMG, ...) 그리고 나는 그 요소가 retun 필요 클릭 할 수 있어야합니다. 해당 함수를 실행 취소하거나 해당 요소의 모든 a.href 및 img.click을 다시 설정해야합니까?

+0

에 해당 왜 그냥 처음에 선택에서 그들을 생략해야 하는가? –

+0

문서화되지 않은 jQuery 내부에서이 작업을 수행하는 것은 불가능합니다. 이 작업을 수행하는 데 신경 쓰지 않고 (그리고 미래의 jQuery 업데이트로 스크립트가 중단 될 위험이 있다면) 매우 저렴하지는 않더라도 가능합니다. – Jon

+0

처음에는 클릭 할 필요가 없습니다. 버튼을 누르면 다시 클릭 할 수있게됩니다. 죄송합니다 귀하의 회신을 이해하지 못했다면 MANDΓ БДLL – Snapper

답변

0

당신이 클릭 기능을 reasign해야 할 때 당신이 단순히 $(".someEle").click(function(e){ yourCustomeFuncForThisItem(var1, var2); });

+0

그래서 Spyk3hh, 내가 말한 것을 이해하면 ... 모든 요소 기능을 다시 설정해야합니다 ... 맞습니까? – Snapper

0

이 같은 일을 할 수 있도록 클릭 할 때마다 기능에 자사에 싸여 않는 것을 확인하십시오, 그런 다음 $('#MainDiv *:not(#Div)').unbind("click"); 을 사용하여 봅니다 이벤트에 대한 작업입니다 대표단. #MainDiv에는 아마도 수십 또는 수백 개의 요소가 있습니까? 거기에 하나의 클릭 이벤트 핸들러를 첨부하기 만하면 #MainDiv에 이벤트 버블을 보내고 클릭 된 것이 #Div인지 확인하십시오.

$("#MainDiv").click(function(event){ 
    if (event.target.id === "Div") { 
     // do the thing with Div 
    } 
    else { 
     return false; 
    } 
}); 
0

이 작업을 시도 할 수 있습니다 :

$('#MainDiv *:not(#Div)').bind('click', false); 

$('#MainDiv *:not(#Div)').unbind('click', false); 

$('#MainDiv *:not(#Div)').bind('click', false);$('#MainDiv *:not(#Div)').click(function() { return false; });

관련 문제