2014-01-17 2 views
0

버튼을 클릭하면 변수가 하나씩 증가하고 변수를 나타내는 페이지 카운터가 업데이트됩니다. 어떤 이유로, 페이지가로드 될 때 버튼이 분명히 한 번 클릭 될 것이고 실제 클릭은 아무 것도하지 않을 것입니다.버튼이로드되면 자동으로 클릭 한 다음 클릭 할 수 없습니다.

나는 $("#click").click(click(1));을 시도하고 onClick="click(1)"을 단추의 실제 HTML에 넣었지만 동일한 결과를 출력하는 것으로 보입니다.

<div class="column_middle"> 
    <div style="font-size:115%;display:inline;">Money: <span id="money">0</span></div> 

    <button id="click" class="mainbutton" style="margin:10px;margin-right:5px;" title="">Click</button> 

그리고 관련 자바 스크립트 :

// Activated on DOM load 
function onLoad(jQuery) { 
    // Set up button functions 
    $("#click").click(click(1)); 
} 

function click(amount) { // Player clicking 
    money += amount; // Add the amount of clicks to the total money 

    html_money.text(money); // Update page money value 

    console.log("Clicked "+amount+" times."); 
} 

// Variable declaration 
var money = 0; // Total money 
var stock = 0; // Total stock 
    var html_money = $("#money"); // Money variable on the actual page 
    var html_stock = $("#stock"); // Stock variable on the actual page 
+0

작동하지 않았다 – Shehabix

답변

1

적어도이 줄은 작동하지 않습니다 : $("#click").click(click(1)); 클릭 이벤트가 발생하면 함수 자체가 아닌 클릭 함수 (void)의 반환 값을 "실행"하게됩니다.

이 시도 :

<div class="column_middle"> 
    <div style="font-size:115%;display:inline;">Money: <span id="money">0</span></div> 
    <button id="incrementButton" class="mainbutton" style="margin:10px;margin-right:5px;" title="">Click</button> 
</div> 

JS :

$(document).ready(function() { 

    var increment = function (amount) { 
    $('#money').text(
     parseInt($('#money').text(), 10) + amount 
    ); 
    } 

    $('#incrementButton').click(function() { 
    increment(1); 
    }); 

    increment(1); 

}); 

은 또한 바이올린을 만든 : http://jsfiddle.net/cP6Lq/

0

변화 당신의 코드 : 공인 이름을 사용하지 않도록하는 것이 매우 중요합니다

function incrementMoney(amount) { // Player clicking 
    $("#money").html(parseInt($("#money").html()) + amount); 
} 

$(document).ready(function() { 
    $("#click").click(function(){ 
     incrementMoney(1)); 
    }); 
} 

여기에 관련 HTML의 특히 함수처럼 명명 된 요소 ID가있는 경우 특별히 ...

+0

아래에 업데이트 된 코드를 확인 - 같은 결과를. 또한 IE8 이하를 지원하지 않는 jQuery 2.0.3을 사용하고 있으므로 어쨌든 이전 IE를 지원하지 않습니다. – LukeZaz

+0

위의 업데이트 된 코드를 확인하고 onLoad 메서드를 호출했는지 확인하십시오. – Shehabix

관련 문제