2011-09-24 7 views
0

click 바인딩에 문제가 있습니다. Knockout 웹 사이트에서 일부 샘플 코드를 실행하려고하는데 작동하지 않습니다. 클릭 수는 업데이트되지 않습니다. Firefox에서 자바 스크립트 오류가 발생하지 않습니다. 누군가 도울 수 있습니까?클릭 바인딩이 작동하지 않습니다.

<head runat="server"> 
    <script type="text/javascript" src="/Scripts/jquery-1.6.4.js"></script> 
    <script type="text/javascript" src="/Scripts/jquery.tmpl.js"></script> 
    <script type="text/javascript" src="/Scripts/knockout-1.2.1.js"></script> 
    <script type="text/javascript"> 
     var clickCounterViewModel = function() { 
      this.numberOfClicks = ko.observable(0); 

      this.registerClick = function() { 
       this.numberOfClicks(this.numberOfClicks() + 1); 
      } 

      this.hasClickedTooManyTimes = ko.dependentObservable(function() { 
       return this.numberOfClicks() >= 3; 
      }, this); 
     }; 

     ko.applyBindings(new clickCounterViewModel()); 
    </script> 
</head> 
<body> 
<div>You've clicked <span data-bind="text: numberOfClicks">&nbsp;</span> times</div> 

<button data-bind="click: registerClick, enable: !hasClickedTooManyTimes()">Click me</button> 

<div data-bind="visible: hasClickedTooManyTimes"> 
    That's too many clicks! Please stop before you wear out your fingers. 
    <button data-bind="click: function() { numberOfClicks(0) }">Reset clicks</button> 
</div> 

</body> 

답변

2

당신은 문서의 하단에 스크립트 태그를 이동하거나 온로드/준비 기능에 넣어 원하는 :

는 내가 가지고있는 코드입니다. 나머지 DOM이로드 된 후 실행하려면 적어도 ko.applyBindings이 필요합니다.

+0

와우 ... 나는 잠시 동안 저를 곤란하게 만들었습니다. 감사!!! 그것은 녹아웃 샘플 코드 ... 그들이 지정했으면 좋겠다! @RP 니이 메이어 – Hoppe

관련 문제