私はAngularJSとTwitter Bootstrapを使用しているWebアプリケーションで作業しています。私のアプリはFirefoxでうまく動作しますが、ChromeやChromium(私の操作システムはUbuntuです)をクリックすると、このクリックは正しく検出されません。クリックは検出されましたが、オブジェクト・イベントはNULLまたは検出されません。ご覧のとおり、evento:
だけを書きますが、id
は書きません。 Firefoxでは、evento:
とid
が正しく書き込まれます。Boostrap 3:ボタンをクリックしても動作しない
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アプリケーションで動かないのですか?何が起こった?
編集1: 私の目標は、上のオブジェクトのIDを取得することです。 Firefox、Chrome、Chromiumを使用しています。今、イベントのIDはFirefoxによってのみ取得されます。 ChromeとChromiumでは、オブジェクトイベントからIDを取得できないためにイベントが発生します。
編集2: イベント変数がnullであるかどうかを知るために私のコードにトレースを追加しました。クロムでクリックすると、クロムのイベント変数はnullになりませんが、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();
}
}
Yeeeeeees !!!! Firefox、Chrome、Chromiumでうまく動作します!!!ありがとうございました! –