2012-12-04 2 views
0

웹 응용 프로그램에 jQuery (1.8.2) 및 jQuery mobile (1.1.1)을 삽입했습니다. 나는이 간단한 핸들러를 만드는 경우 이제 :jQuery + jQuery Mobile = 핸들러를 두 번 호출 하시겠습니까?

$('.pulsante-menu').click(function() { 
    console.log("ooo"); 
}); 

를 내가 링크를 클릭, 나는 배 콘솔 메시지가 표시! 어떻게 해결할 수 있습니까?

This이 내 코드입니다.

+1

html을 볼 수 있습니까? –

+0

'.pulsante-menu'를 가진 다른 요소 안에'.pulsante-menu' 클래스의 요소가 없습니까? 그렇다면 내부 요소를 클릭 할 때 이벤트가 두 번 발생합니다. 한 번만 실행되도록하려면 이벤트 객체를 인수로 이벤트 처리기에 추가 한 다음 '.stopPropagation()'메소드를 사용하여 이벤트가 다른 '.pulsante-menu' 요소로 버블 링되지 않도록합니다. –

+0

실례를 추가했습니다! 콘솔 확인 : O – markzzz

답변

3

<head> 요소 나 별도의 JavaScript 파일로 스크립트를 이동하십시오. 또는 pageinit을 사용해보십시오. 왜 그런지 설명하는 이유는 in this post on jQuery.com입니다.

0

JS 섹션에서 한 번, HTML 섹션의 스크립트 태그에서 한 번 두 번 정의 된 핸들러가 있습니다. 그 중 하나를 제거하면 효과가 있습니다.

내 업데이트 fiddle을 확인하십시오.

HTML :

<head> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.js"></script> 
    <script src="http://jquerymobile.com/demos/1.1.1/js/jquery.mobile-1.1.1.js" type="text/javascript"></script> 
</head> 
<body> 
    <a href="#" class="prova">Link</a> 
</body> 

자바 스크립트 :

$('.prova').click(function() { 
    console.log("ooo"); 
    return false; // stopPropagation and preventDefault 
}); 

+0

글쎄, 그건 그냥 복사 및 붙여 넣기에 대한 광산 오류 였어! 이것을 시도하십시오 http://jsfiddle.net/fBjgu/9/ – markzzz

+0

또한 문제를 일으키는 예제 jquery 모바일! – markzzz

0

이 뭔가를 시도 할 수 있습니다.

$('.pulsante-menu').click(function (e) { 
    e.stopPropagation(); 
    console.log("ooo"); 
}); 
+0

이것은 의미가 없습니다! 왜 두 번 표시됩니까? – markzzz

+0

또한 변경 사항이 없습니다. http://jsfiddle.net/fBjgu/15/ – markzzz

관련 문제