我正在用KnockoutJS和Node.js編寫一個小型的聊天客戶端/服務器應用程序,除了事實上,我發送消息後,我不再關注消息字段,用戶必須重新點擊它每次他們想打字(很煩人)。你們知道我能做什麼嗎?這裏是模板:如何自動對焦一個字段?
<script type="text/html" id="chatRoom">
<div id="chatContainer" class="chatContainer">
<div class="chatFrom">
<i id="chatClose" class="chatSprite chatClose" data-bind='click: function() { server.removeChat(this) }'></i>
</div>
<div class="chatMessages">
<ul id="chatHolder">
{{each messages()}}
<li><div class="chatFromText">From: ${ from }</div>
<div class="chatTime">${ time }</div><div class="chatMsg">${ text }</div></li>
{{/each}}
</ul>
</div>
<div class="chatControls">
<form data-bind="submit: function() { send($('#'+channel).val()); $('#'+channel).focus(); }">
<input type="text" id="${ channel }" name="message" class="chatText" style="color: #999;" value="Message Here" data-bind='click: function() {
$("#"+channel).val("").css("color", "#000");
}' />
<i class="chatSprite chatSend" data-bind="click: function() { $('.chatSend').parent().submit() }"></i>
</form>
</div>
</div>
</script>
正如你可以看到我已經試過重點領域的每一個可能的方式,但沒有一個似乎工作。有什麼建議麼?
RP,你我的朋友是個高手!你對異步調用和模板重新渲染之間的時間是正確的,所以我只是把它放在正確的地方,它的工作!再次感謝你 – Jose 2011-03-08 21:28:01
嘿RP,我認爲到knockout-latest-debug.js文件的鏈接被破壞了。所以jsfiddle的例子也被打破了。我以前見過同樣的問題。只是想讓你知道。 – 2013-02-22 15:52:42
謝謝。許多舊的小提琴都與Github上的構建輸出相關聯,而這些輸出已不再適用於KO。我更新了小提琴。如果你看到其他人,請告訴我。 – 2013-02-22 16:45:03