위젯 팩토리의 jQuery 객체에 $ .extend를 사용하면 IE8은 새로 생성 된 객체에서 jQuery 컨텍스트를 잃어 버리는 것처럼 보입니다. 내가 설명해.
다음 코드는이 코드를 IE8를 제외한 모든 주요 브라우저 에서 잘 작동
$.widget("a07.Wooh", { options: { test: "Awesome" }, _testFunc: function() { // Perform some operations on the DOM using this.element jQuery Object this.element.after("<div class=\"stuff\">Some cool stuff</div>").next().hide(); }, _testFunc2: function() { //Copy the this.element object this.element2 = $.extend({}, this.element); //Perform some operations on the DOM using this.element2 jQuery Object this.element2.next().css('color', 'red').show(); }, _create: function() { this._testFunc(); this._testFunc2(); }, _init: function() {} });
위에서 언급 한 바와 같이 IE9 +, 크롬, 파이어 폭스
에서 작동합니다. 기본적으로 그것은 반환하고this.element2.next().css().show()
라인에 대한 오류 메시지 :
개체 (
는이 참조 속성/메소드는 jQuery를 방법 옆에이 속성 또는 메서드를 지원하지 않습니다), CSS() 같은 개체를 jQuery 함수로 래핑하면 IE8에서 this.element2가 jQuery 컨텍스트를 잃어 버린 것처럼 보입니다. this.element2 = $(this.element2);
.
그래서 질문은는, 무슨 일이 일어나고 있는가? IE8의 표준 동작입니까? 아니면 프로그래밍 방식으로 잘못 접근하고 있습니까?
'this.element2 = $ .extend ({}, this.element)'- 여기에 당신의 의도는 무엇입니까? –
당신의 바이올린은 IE8에서 작동합니다. –
IE8에서 작동하는 경우 크롬 프레임이 설치되어 있거나 일종의 3 차원 호환성 모드에있을 수 있습니까? 그것은 내 로컬 테스트 IE8과 BrowserStack의 정확한 라인에서 같은 오류로 실패합니다. – EasyCo