代码:
<table>
<tr ng-click="function()">
<td id="1"></td>
<td></td>
<tr>
</table>
如何从id = 1的td删除click-handler? 感谢
答案 0 :(得分:1)
我将这意味着您不想在td id = 1中触发click事件处理程序,但您确实希望该行中的所有其他td仍然触发它。
ng-click连接普通的javascript事件处理程序。由于您正在侦听tr元素上的click事件,因此您只需要在事件触发子元素时停止传播,直到事件为止。
最好写成指令
app.directive('disableClick', function() {
return function(scope, elem) {
elem.on('click', function(e) {
// e.stopPropagation(); or for IE, window.event.cancelBubble
return false; // My assumption is that jqLite supports this, jQuery definitely does.
});
}
});
HTML
<td disable-click id="1"></td>
点击事件将不再冒泡到TR。
答案 1 :(得分:0)
正确的方法,这是一个指令。我发现它可以帮助你 在这里,您举个例子click no bubble
angular.forEach( 'click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave'.split(' '),
function(name) {
var directiveName = name.replace('my-' , '');
app.directive( directiveName, ['$parse', function($parse) {
return function(scope, element, attr) {
var fn = $parse(attr[directiveName]);
element.bind(lowercase(name), function(event) {
event.stopPropagation();
scope.$apply(function() {
fn(scope, {$event:event});
});
});
};
}]);
我希望它有所帮助