Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 主干。查看事件只触发一次_Javascript_Backbone.js_Backbone Views_Backbone Events - Fatal编程技术网

Javascript 主干。查看事件只触发一次

Javascript 主干。查看事件只触发一次,javascript,backbone.js,backbone-views,backbone-events,Javascript,Backbone.js,Backbone Views,Backbone Events,jumpToWave事件只触发一次,我不明白为什么 我的看法是: var WaveModalView = Backbone.View.extend({ template:_.template($('#tpl-wave-modal').html()), events: { 'hidden': 'remove', 'click .jumpToWaveBtn':'jumpToWave' }, jumpToWave:function(e){ e.prevent

jumpToWave事件只触发一次,我不明白为什么

我的看法是:

var WaveModalView = Backbone.View.extend({

template:_.template($('#tpl-wave-modal').html()),

events: {
    'hidden': 'remove',
    'click .jumpToWaveBtn':'jumpToWave'
},
    jumpToWave:function(e){
        e.preventDefault();
        console.log("JMP")
        var marker = this.model.collection.markers[this.model.id];
        map.panTo(marker.getPosition());
        bounceMarker(marker,1750);
    },
render:function () {
    var model = this.model;
    var that  = this;
    $(this.el).html(this.template(model.toJSON()));

    if(model.get('waveReviews').length > 0){
        var reviewList = new WaveReviewList({model: model});
        $('#waveReviews' + model.id).html(reviewList.render().el);
    }

    this.$("#waveSync" + model.id).click(function(e){
        e.preventDefault();
        if(window.me){
            requestSyncWave(model.id,function(data){
               window.me.fetch();
            });
        }
    });

    this.$("#waveEdit" + model.id).click(function(e){
        e.preventDefault();
        window.waveUnderEdit = model;
        $(that.el).children(":first").modal('hide');
        openWaveEditModal(model);

    });

    return this;
}

});
这是模板中的相关按钮:

<button class="btn btn-info jumpToWaveBtn" data-dismiss="modal" aria-hidden="true">Auf Karte
            anzeigen</button>
Auf卡丁车
安齐根

当我点击按钮时,我有多个模态。每个模式只触发一次事件,之后不再记录“JMP”

我没有看到您的代码在
WaveModalView
上调用
render
,但我怀疑问题在于您确实从其他地方调用了
render()
,这反过来调用了
$(this.el).html(…)
,它替换了视图元素的内容,并且新插入的内容没有绑定到其元素的事件

如果这确实是问题所在,可以通过在
render()
函数末尾添加
this.delegateEvents()
来解决


例如,检查此问题和答案:

完成了,谢谢。您是否可以在delegateEvents()中详细说明?您是否查看了关于
delegateEvents()
的官方文档?