Мой HTML-код, как это:как stopPropagation в Backbone.js
<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');
},
Я вызывается e.stopPropagation() в функции loadPic, когда я нажимаю элемент img, и он называется успешно. Но почему detailHandler все еще извинялся и предупреждал «ха-ха». Как я могу исправить эту проблему?
Вы пробовали 'stopImmediatePropagation' (не уверены, помогут)? Хотя я считаю, что «stopPropagation» должен работать. В любом случае вы могли бы сделать pj http://jsfiddle.net/, демонстрируя проблему? –
Кажется, будет работать как ожидалось http://jsfiddle.net/h6cLcs7h/ – nikoshr
@Yury Tarabanko stopImmediatePropagation отлично работает, thx –