我在AngularJS/Firefox中發現了一個奇怪的怪癖,那裏的選擇器使用了不同的元素。我已經把它在一個Plunker來證明它的效果:AngularJS/jQuery「parent()」在FF中選擇的元素不同於Chrome和Safari,爲什麼?
http://plnkr.co/edit/H7stCpQE59i0aUlQ865j?p=preview
打開它在Chrome和點擊按鈕。你其實選擇一個隱藏<input>
元素,那麼角度傳遞給它的活動/家長一起,抓住家長<button>
並添加類.active
它,像這樣:
$scope.selectTag = function($event){
var elem = angular.element($event.srcElement).parent();
if(elem.hasClass('active')){
elem.removeClass("active");
}else{
elem.addClass('active');
}
}
在Firefox中,雖然,它選擇<input>
元素並將.active
添加到該元素中,而不是作爲其父元素的<button>
。
爲什麼會發生這種情況的任何想法?
也許你應該使用'target',而不是''一樣VAR ELEM = angular.element($ event.target).parent()srcElement';' –
請訪問http:// stackoverflow.com/questions/5301643/how-can-i-make-event-srcelement-work-in-firefox-and-what-does-it-mean查看$ event.srcElement的描述 –