2013-07-23 3 views
0

내가 jQuery로 버튼 내가 자바 스크립트 함수를 호출 할 수 있도록 노력 JQuery와 버튼을 클릭 할 때 번 이상 실행,하지만 난 문제가있어 : myButton에 페이지로드, 처음으로 클릭이 더 반응이자바 스크립트 함수 내가

  1. 이없는 후를
  2. 초 클릭 두 번
  3. 세 번째 클릭 기능 세 가지 더

왜 내 코드가 더 많은 실행을 실행합니다 기능을 실행할 것인가? 난 그냥 "1 클릭 한 실행 자바 스크립트 함수" 여기 http://jsbin.com/ovucer/1/edit

+0

들으 U 모든 .. 나는 대답을 얻는다. .. 매우 도움이되는 .thx. ** 사례 폐회 ** –

+1

우리에게 정답을 보여주세요 ^^ –

답변

2

이 일이 나의 전체 오류 코드를 시도에 대해이 문제를

을 좀 도와주십시오

<script type="text/javascript" language="javascript"> 

function showcase(){ 
    var foo = function() { 
     alert('tutup'); 
    }; 
    $('#create-new').on('click',foo); 
    return false; 
}</script> <button class="button" id="create-new"onclick="return showcase();">show text</button> 

처럼 내 코드를 원하는 click 이벤트를 바인딩하기 때문에 showcase() 함수를 호출하고 메서드를 호출하는 새로운 click 이벤트를 바인딩합니다. 마지막 반복은 버튼을 누를 때마다 반복됩니다. 이것은 일종의 재귀입니다.

<button class="button" id="create-new">show text</button> 

<script type="text/javascript"> 
    $("#create-new").on("click", function() { 
     alert("tutup"); 
    }); 
</script> 
3

당신은 당신이 클릭 요소

때마다 여러 클릭 이벤트 리스너를 등록 : 요소가로드 된 후

올바른 방법은 클릭 이벤트를 하나의 시간을 결합하는 것 당신이 showcase 방법을 사용하여 버튼에 새로운 클릭 핸들러를 추가하는 버튼, 그것은

<button class="button" id="create-new">show text</button> 
<script type="text/javascript" language="javascript"> 
    var foo = function() { 
     alert('tutup'); 
    }; 
    $('#create-new').on('click',foo); 
</script> 
1

당신은에 온 클릭 함수를 등록이 필요하지 않습니다 온 클릭,

사용이 :

$('#create-new').on('click', function(){ alert('text button'); return false; }); 
1

당신은 두 번 클릭 이벤트를 바인딩하고 있습니다. HTML에 onclick을 사용하고 jQuery .on()을 사용하여 다시 작성하십시오.

은 여러분의 인생을 더 쉽게 만드는, 당신은 이미 jQuery를 사용하고 같은 문서 만 준비 행사를 수행합니다

var foo = function() { 
    alert('text button'); 

    return false; 
}; 

$(function() { 
    $('#create-new').on('click',foo); 
}); 

그리고 onclick 제거하여, 당신의 HTML 비트를 수정 :

<button class="button" id="create-new">show text</button> 
0

는 스크립트 태그에 이것을 시도하고 버튼에 the onclick event을 삭제 :

var foo = function() { 
    alert('tutup'); 
}; 
$('#create-new').on('click',foo); 
return false;