我知道你可以有一个不同的模板,它根据一个条件使用不同的事件处理程序,但有没有一种方法可以在淘汰中使事件处理程序名称动态?
例如:
<button data-bind="event : { EventToUse() : SomeMethod }"></button>
有一个这样的方法:
self.EventToUse = function(){
return 'ontouchstart' in document.documentElement ? 'touchstart' : 'click';
};
上面的绑定语法是无效的,所以它不是一个解决方案,只是我的目标的草图
我再一次知道有这样的东西:
self.TemplateToUse = function(){
return 'ontouchstart' in document.documentElement ? 'touch-Template' : 'desktop-Template';
};
并将其绑定到加载模板的容器。
我想知道这是否可以用更少的按键来完成。
非常感谢
可以。event
绑定接受一个对象,并且该对象可以动态构建。
<button data-bind="event: TouchOrClick(SomeMethod)"></button>
方法:
self.TouchOrClick= function(method) {
return 'ontouchstart' in document.documentElement ?
{ 'touchstart' : method } : { 'click' : method };
};