jQuery Mobile + Backbone 点击事件触发两次

标签 jquery jquery-mobile backbone.js touch-event

这是我在 View 中定义事件的位置:

events : {
            "tap #exerciseProgressBarContainer" : 'progressBarClick'
        },

这是操作:

    progressBarClick : function() {
        // start?
        if(this.curWorkoutExercise.isTimed() && !this.curExerciseStartTime) {
            HTMLHelper.endGlow(this.$('#exerciseProgressBarContainer .progressBar.overlay'));
            this.startExerciseProgressTimer();
        }
        // done?
        else {
            this.stopExerciseProgressTimer();

            // save the log
            this.addCurExerciseLog();

            this.startBreak();
            this.nextAction();
        }
    },

基本上,在第一次点击时,用户启动进度计时器,启动后,再次点击即可完成它。我的 iPhone 和 Android 上发生的情况是点击事件触发两次,使进度条的开始和停止同时进行。有什么想法为什么会发生这种情况以及如何解决它吗?注意:我已经尝试过将 tapvclick 交换。

非常感谢!

最佳答案

我最终使用停止事件传播 e.stopPropagation()e.preventDefault()

关于jQuery Mobile + Backbone 点击事件触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12113533/

相关文章:

javascript - 在angularjs中将ng-grid数据导出为CSV和PDF格式

jquery - 以编程方式选择字段集中的单选按钮

backbone.js - 两个模型之间的主干关系

javascript - 生产中的主干模板

javascript - 主干JS : How to call function outside view from view's events hash?

jquery - .position() 和 .offset() 之间的区别以及有趣的观察?

javascript - 禁用链接直到所有动画停止并再次启用它们

javascript - 如何让 <select> 框从包含的 <div> 中溢出?

JavaScript 不适用于 Windows Mobile 和 Windows Phone

jquery-mobile - PhoneGap (Cordova),使用 Sencha Touch 2 还是 jQuery Mobile?