我正在开发一个使用 AngularJS 和 Twitter Bootstrap 的 Web 应用程序。我的应用在 Firefox 上运行良好,但在 Chrome 或 Chromium(我的操作系统是 Ubuntu)上单击按钮时,无法正确检测到此点击。检测到点击但对象事件为空或未检测到。如您所见,它只写入evento:
但不写入id
. 在 Firefox 中,它evento:
会id
正确写入。
HTML:
<button id = "removeLeftTables" ng-click = "hmCtrl.changeView($event)">
<span class="glyphicon glyphicon-remove " aria-hidden="true" style = "vertical-align: middle; font-size: 25px"></span>
</button>
JS:
self.changeView = function(event){
console.log("evento: " + event.target.id);
if (event.target.id == "removeLeftTables"){
self.show_left_tables = false;
self.style_left_content = "";
self.style_right_content = "";
self.style_tables_content = "";
self.cleanTabStyles();
}
if (event.target.id == "removeRightTables"){
self.show_right_tables = false;
self.style_right_content = "";
self.style_left_content = "";
self.style_tables_content = "";
self.cleanTabStyles();
}
}
我已经使用相同的代码制作了这个 plunker 来检查错误并且它有效:https ://plnkr.co/edit/vbBhVCrkpLyRl63Lwlur
我什么都不懂。为什么它不能在我的 Web 应用程序中工作,而在 plunker 中工作正常?发生了什么事?
编辑1:我的目标是获取对象的ID,我已经做了一个clic。使用 Firefox、Chrome 和 Chromium。现在,事件的 id 只能由 Firefox 检索。使用 Chrome 和 Chromium,该事件是由我无法从对象事件中检索 id 触发的。
编辑 2:我在我的代码中添加了一条跟踪,以了解事件变量是否为空,当我在 Chrome 中单击时,Chromium 事件变量不为空,但未检测到 id!
$scope.changeView = function(event){
if (event == null)
console.log("event is NULL");
else
console.log("event IS NOT NULL");
console.log("evento: " + event.target.id);
if (event.target.id == "removeLeftTables"){
self.show_left_tables = false;
self.style_left_content = "";
self.style_right_content = "";
self.style_tables_content = "";
self.cleanTabStyles();
}
if (event.target.id == "removeRightTables"){
self.show_right_tables = false;
self.style_right_content = "";
self.style_left_content = "";
self.style_tables_content = "";
self.cleanTabStyles();
}
}