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());
関数がまだ実行されている理由を誰かに教えてもらえますか? コンソールにも、タッチイベントがサポートされていないというメッセージが表示されるためです。