2013-12-20 25 views
3

我想實現使用'hasFocus'綁定的簡單演示代碼。示例代碼可用here它也在瀏覽器中正常工作(IE)knockout.js - hasFocus不工作

當我複製相同的代碼並將其粘貼到我的MVC應用程序中時,它停止工作。即使點擊按鈕後沒有把焦點放在文本框上。以下是我的代碼:

<div> 
    <div> 
     <input data-bind="hasFocus: isSelected" /> 
     <button data-bind="click: setIsSelected">Focus programmatically</button> 
     <span data-bind="visible: isSelected">The textbox has focus</span> 
    </div> 
</div> 

@section scripts{ 
    <script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.7.1.js")"></script> 
    <script type="text/javascript" src="@Url.Content("~/Scripts/knockout-2.1.0.js")"></script> 
    <script type="text/ecmascript" src="@Url.Content("~/Scripts/jquery-ui-1.8.20.js")"></script> 
    <script> 
     $(function() { 
      var viewModel = 
       { 
        isSelected: ko.observable(false), 
        setIsSelected: function() { this.isSelected(true) } 
       }; 
      ko.applyBindings(viewModel); 
     }); 
    </script> 
} 

有沒有人知道這裏出了什麼問題?

+0

來下載最新的挖空庫。輸出中是否包含腳本部分?請檢查呈現頁面的html源代碼。有可能你沒有在任何地方渲染該部分。在佈局的某個位置使用['@ Html.RenderSection()'](http://msdn.microsoft.com/zh-cn/library/gg537886%28v=vs.111%29.aspx)。 – SoonDead

+0

我剛剛在我的MVC應用程序中嘗試過,它可以在所有瀏覽器中正常工作。作爲一個便箋,你爲什麼不使用Bundles?而不是直接鏈接到腳本? – avrahamcool

+0

謝謝@avrahamcool。其實這是老版本的ko中的錯誤。我使用packagemanager下載了最新版本的knockoutjs,並將其固定在其中。 (knockoutjs3.0.0) – user2243747

回答