我正在使用 Modernizr 运行触摸事件测试,测试似乎运行良好,但仍然是我仅在测试成功时才调用的函数。
这是测试:
Cluster.prototype.test_touch_event_support = function(callback) {
return (Modernizr.touch) ? callback : log("Touch Support Undetected");
};
这是只有在测试成功时才应该运行的函数:
Cluster.prototype.initiate_shop_touch_events = function() {
var self = this;
return $("#" + this.shop_wrapper_id).hammer({prevent_default: true, drag_min_distance: Math.round(this.viewport_width * 0.1)}).bind("drag", function(ev) {
var data = JSON.parse(self.get_local_storage_data(self.shop_data_key));
var step = (ev.direction == "left") ? 1 : -1;
var new_page = parseInt(data.current_page + step);
return (new_page > 0 && new_page <= data.total_pages) ? $(self.shop_navigation_class).jPages(new_page) : false;
});
};
而且我正在检查,即使它不依赖于我传递给测试的论点:
self.test_touch_event_support(self.initiate_shop_touch_events());
有人可以告诉我为什么该功能仍在运行吗?因为我还在控制台中收到不支持触摸事件的消息。