2014-04-12 7 views
0

'을 충족하면 Jquery 이미지 도구가 실행되지 않도록합니다. 이미지를 표시하기위한 도구. 그것은 잘 작동하지만 특정 값을 아약스 호출에서 반환되는 경우 라이트 박스 기능을 방지 할 필요가있다. 이제,이 질문은 아약스 호출과 관련이 없습니다. 링크가 이미 클릭 된 후에 LightBox가 작동하지 않게하려면 어떻게해야합니까? <a href="http://lokeshdhakar.com/projects/lightbox2/" rel="nofollow">LightBox</a>이라는 jquery 도구를 사용하여 조건이

(이것은 잘 작동) 라이트 박스를 사용하여 이미지를 팝업 링크입니다

<a id="test_id" href="http://localhost/histogram.do" data-lightbox="histogram1"> Click Me </a> 

이 내 서투른 코드가 계속에서 라이트 박스를 중지하는 것입니다. 경고가 발생하지만 확인을 클릭하면 라이트 박스 팝업이 계속 나타납니다. 어떤 아이디어?

$("#test_id").click(function(e){ 
    alert("hello"); 
    e.stopPropagation(); 
}) 

답변

1

해당 라이브러리는 jQuery .on()을 사용하여 click 이벤트를 요소에 바인딩합니다.

e.stopImmediatePropagation()을 사용해 보셨습니까?

http://api.jquery.com/event.stopImmediatePropagation/

이 발사에서 다른 핸들러를 방지하고 버블을 방지하기 위해 stopPropagation()를 호출합니다.

또한, 클릭에 HREF 링크를 다음에서 요소를 방지하기 위해, 당신은 실행 정지 라이트 박스를했다 e.preventDefault()

http://api.jquery.com/event.preventDefault/

+0

사용할 수 있습니다. 그러나 앵커가 href 주소를 가리키고 있기 때문에 서버에 대한 실제 호출이 여전히 발생합니다. 그래서이 줄을 stopImmediatePropagation() 전에 추가하여 서버를 호출하지 않도록했습니다. $ ("# test_id"). attr ("href", "#"); 작동하는 것처럼 보이지만 의미가 있습니까? 저는 jquery 개발자가 아니므로 이것이 깨끗한 지 또는 더 좋은 방법이 있는지 확실하지 않습니다. – LatinCanuck

+0

위의 대답에 추가되었습니다 ... 당신은'preventDefault()'로 그 호출을 막을 수 있습니다. – jamis0n

관련 문제