使用 Underscore.js 模板在 PhoneGap / Backbone.js 中未触发点击事件
-
11-12-2019 - |
题
我一直在使用backbone.js 制作Phonegap / Cordova 2.0 应用程序,在我尝试构建表单之前一切都很好。表单已显示,但单击事件不会触发键盘。
我尝试了不同的事件,发现添加 ontouchstart="this.focus()"
调出键盘很好。我在视图函数中添加了一个包罗万象的内容来吸引焦点:
window.PageView = Backbone.View.extend({
initialize: function() {
this.template = _.template(tpl.get('page'));
},
render: function(eventName) {
$(this.el).html(this.template(this.model.toJSON()));
$('input', $(this.el)).bind('touchstart',function(event) {
$(this).focus();
});
return this;
}
});
但即使这样如果我改变 bind('touchstart'...
到 'click'
它不会被触发。
我还发现了其他几个帖子,例如: 单击事件不会在下划线模板中触发
这表明它与 underscore.js 模板过程有关,但没有什么是非常清楚的。
我想我可以在 touchstart 上创建一个计时器函数来模拟这个,但它有点神秘,所以我想知道到底发生了什么。
谢谢。
解决方案 2
事实证明是 iScroll 导致了这个问题。
onBeforeScrollStart: function (e) { e.preventDefault(); },
具体来说。我刚刚注释掉了 e.preventDefault();
这真是一种享受!
其他提示
尝试这个:
this.$(':input').bind(...)
不隶属于 StackOverflow