< p>我有一些简单的javascript使用了如下工作的淘汰赛:< / p>
< p>用户可以添加评论,调出textarea。按Enter键后,他们的评论将被发布。他们有一个按钮,允许他们取消帖子并将其带回以添加评论屏幕。< / p>
< p>问题是,当用户在textarea中有文本时选择取消(< code>< a>< / code>元素)时,我的点击事件处理程序不会被调用。 ..直到它第二次点击。但是,如果用户尚未在textarea中输入任何内容,它将有效取消帖子。< / p>
< p为H. HTML:其中/ p为H.
< pre>< code>< a data-bind =" attr:{id:$ context.cellContext.status.rowIndex},点击:$ parent.toggleCommentSelection" class =" fa fa-plus" style =" float:right" />
< textarea data-bind =" attr:{id:' commentField' + $ context.cellContext.status.rowIndex},event:{keyup:$ parent.checkEntered,}"类="注释文本区域" />
< /代码>< /预>
< p为H.使用Javascript:其中/ p为H.
<预><代码> self.toggleCommentSelection = function(data,event){
var targetId = event.currentTarget.id;
self.currentRow(目标ID);
//在取消按钮点击时调用的东西
//如果文本区域中有文本,则直到该文本才会被调用
//点击两次
};
self.checkEntered = function(data,event){
//在keyup上调用的东西
//输入键被按下了
if(event.keyCode === 13){
var comment = $ .trim($('#commentField' +
self.currentRow())VAL())。
if(comment.length> 0){
postComment(评语);
}
}
};
< /代码>< /预>
< p>如果textarea中有文字,我的点击绑定功能< code> toggleCommentSelection< / code>为什么只会在第二次点击时被调用?< / p>