javascript - 如何停止backbone.js中的传播

标签 javascript jquery backbone.js

我的HTML代码是这样的:

<li data-id="<%=p.id %>" data-len="<%=products.length %>" data-count="<%=count %>">
    <div class="pro_list_imgbox">
        <img src="" />
    </div>
</li>

我的js代码是这样的:

events: {
            'click .pro_list_imgbox': 'loadPic',
            'click li[data-id]': 'detailHandler'
        },

loadPic: function (e) {
            var target = $(e.target),
                pic = target[0].nodeName === 'IMG' ? target : target.find('img');

            if (!pic.data('loadState')) {
                e.stopPropagation();
                if (e.isPropagationStopped()) {
                    alert('stoped');
                }
                pic.attr('src', pic[0].src += '?t' + new Date().getTime());
            }

        },

detailHandler: function (e) {
            alert('haha');
        },

当我单击 img 元素时,我在函数 loadPic 中调用了 e.stopPropagation() ,并且调用成功。 但为什么detailHandler仍然执行并“哈哈”警报。 我该如何解决这个问题?

最佳答案

看来您的方向几乎是正确的。请检查以下是否可以解决您的问题:

events: {
            'click .pro_list_imgbox': 'loadPic',
            'click li[data-id]': 'detailHandler'
        },

loadPic: function (e) {
            var target = $(e.target),
                pic = target[0].nodeName === 'IMG' ? target : target.find('img');

            if (!pic.data('loadState')) {
                pic.attr('src', pic[0].src += '?t' + new Date().getTime());
            }
           //this return statement will not allow the event to propagate to the parent element.
            return false;

        },

detailHandler: function (e) {
            alert('haha');
        },

关于javascript - 如何停止backbone.js中的传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27688496/

相关文章:

javascript - 保存模型时 Backbone 1.2 发出的 Json 无效?

Javascript IndexOf 字符串中的整数不起作用

javascript - 如何使用我的长(60 天)访问 token 从 Facebook 获取用户数据(离线)

javascript - 当数据源是数组时,jQuery DataTables 刷新网格

javascript - 从对象 "this"javascript 获取信息

backbone.js - 监听器绑定(bind)到模型属性未触发

javascript - Ember.getOwner 用于集成测试中的服务查找

JavaScript 正则表达式 - 从单词旁边提取数字

javascript - history.pushState 后转发按钮不起作用

Backbone.js 和渲染表