jquery pjax와 jquery 3.0.0이 호환되지 않음

6029 단어 jquery-pjax

묘사

최신 버전의 jquery(3.0.0) jquery를 사용할 때.사건.pjax에 정의된 아이템이 없습니다.따로 만나다https://github.com/jquery/api.jquery.com/issues/405

토론 #1

저도요.jquery 사용하지 않음 (3.0.0)jquery.pjax-min.js:1 Uncaught TypeError: Cannot read property 'push' of undefined

토론 #2

맞아요. 저는 jQuery 3.0.0

토론 #셋

에 같은 문제가 있어요. $.event.props가 삭제된 것 같아요.https://jquery.com/upgrade-guide/3.0/#breaking- jquery 이벤트 아이템을 변경하고

토론 #4

이벤트의 jquery 이벤트 복구 연결을 삭제합니다.아이템 드릴은 다음과 같은 방법으로 수리(AFAICT)할 수 있다.
if ( $.event.props && $.inArray('state', $.event.props) < 0 ) {
  $.event.props.push('state');
} else if ( ! ('state' in $.Event.prototype) ) {
  $.event.addProp('state');
}
https://github.com/defunkt/jquery-pjax/blob/master/jquery.pjax.js#L914
그러나 코드도 .context.selector를 사용했고 이것도 jQuery 3.0 이후removed properties였다.나는 이 플러그인을 jQuery 3.0에 적용하려고 시도할 수 있지만, 모든 플러그인은 대수리가 필요하다고 생각한다.

토론 #5

@ohren은 남은 복구를 기다리고 있습니다:

토론 #6

네, 제가 뭔가를 날조했습니다.
비록 사용하면 위험이 있을 수 있다. (방금 이것을 생각해 냈지만, 일이 작용한 것 같다.)
https://gist.github.com/oh-ren/7afed121c2cd29993bd26c996fc6f501

토론 #7

@ohren 감사합니다.

토론 #8

잘했어, 인아!너의 수정은 나에게도 매우 좋다.그러나 pjax에 대한 중대한 수정은 미래의 좋은 방법일 수 있다.

토론 #9

감사합니다. 플러그인의 미래/유지 관리 상태에 대해 질문했습니다(#638).

토론 #10

불행하게도, 일부 경우, 복구 프로그램은 페이지 내용을 바꾸지 않습니다.왜 그런지 모르겠지만 jq2로 회복하는 효과는 예상과 같다.오류 메시지 없음:

토론 #11

음...나 자신은 아직 만난 적이 없다.
가능하다, ~할 수 있다,...
jQ2로 복구하는 것만으로도 충분합니까, 아니면 원시적인 pjax로 복구해야 합니까?
(테스트/실행 중인 브라우저는 무엇입니까?)
편집: 이것은 방문자가 기록을 조회할 때만 발생하는 것이지 페이지 링크를 통해 조회할 때만 발생하는 것이 아니라는 것을 기억합니까?

토론 #12

Is just reverting back to jQ2 sufficient, or do you also need to revert back to the original pjax?


나는 둘 다 바꿨는데 결과는 모두 성공했다.사실대로 말하면, 나는 어떻게 해야 할지 모르겠다.

(ps. what browser or you testing/running on?)


최신 Chrome/Mac

do you recall if it perhaps only seems to happen when navigation through the browers's history vs. navigating via page links?


그것은 내가 클릭했을 때 발생했다.
사실 나는 오늘 pjax를 완전히 포기하고 터보 링크를 사용할 때까지 몇 시간을 보냈다.나는 갑자기 내가 버려진 물건에 시간을 낭비하고 있다는 것을 느꼈다.그럼에도 불구하고 당신의 도움에 대단히 감사합니다.

토론 #13

I actually wrestled with the issue for a few hours today until I gave up on pjax altogether and switched to Turbolinks. I suddenly felt I am wasting my time with an abandonware. Nonetheless, I greatly appreciate your help.


네가 옳은 것 같아...!내가 직접 볼게Turbolinks(왜 나는 이전에 들어보지 못했지?)그것은 마치 Rails 세계에서 기원한 것 같다. 그렇지?
나는 일찍이 pjax 대체품을 찾다가 우연히 발견한 적이 있다고 생각한다. Intercooler. 그러나 어떤 이유로 터보링크스를 만나지 못한 것 같다.너도 전자를 조사한 적이 있니?
어쨌든 이 점을 지적해 주셔서 감사합니다!

토론 #14

It seems it stems from the Rails world, am I right?


네, 그것은 대본영의 소대에 의해 지어졌습니다.com은 두 개의 코드 기반을 유지하는 것을 피한다.Rails와 함께 사용하면 좋습니다. 이것은 강제적인 것이 아닙니다. 저는 지금 Django와 함께 사용하고 있습니다. 제가 해야 할 일은 폼 제출/리셋을 처리하기 위해 JS와 백엔드 초기화를 작성하는 것입니다.
또한 Turbolinks는 Android 및 iOS의 공식 패키지를 제공합니다.https://www.youtube.com/watch?v=SWEts0rlezA
나는 아직 냉각기를 검사하지 않았지만, 냉각기 프로그램을 작성해야 할 것 같아서, 심각한 재구성을 하지 않은 상태에서 옵션을 삭제하지 않았고, pjax와 TurboLink는 이렇게 구축된 것이 아니다.

토론 #15

나는 몇 시간 동안 터보링크스를 설정해서 나의 요구를 충족시켰지만 시간이 지나자 포기했다. 터보링크가 현재의 신체 요소를 대체하고 지정된 용기가 아니라 현재의 신체 요소를 대체했기 때문이다.따라서, 나는 pjax를 계속 사용할 것이며, 머지않아 중대한 재작업을 진행할 수 있기를 희망한다.

토론 #16

처음에 터보링크스가 차체 전체를 교체했는데 이것은 나를 불쾌하게 했다.실제로 data-turbolinks-permanent 매개변수를 사용하여 영구 요소를 지정할 수 있습니다.보기 좋아서 이사 가야겠어요.

토론 #17

그래, 하지만 전체 신체 원소는 여전히 교체될 거야. 예외만 있을 뿐이야.내가 보기에 이것은 실행 가능한 방법이 아니다.가장 좋은 것은 aax 호출로 무엇을 바꾸는지 선택하는 것이다.

토론 #18

Turbolinks replaces the current body element rather than a designated container.


나는 간단한 통용 AJAX 코드를 통해 이 코드들을 불러왔다.폼을 제출할 때 완전히 다시 불러오지 않았을 것입니다

토론 #19

@ohren jQ3 호환성 복원 요청을 제출할 수 있습니까?

토론 #20

@mislav 나는 나의 gist가 많든 적든 신속하고 더러운 복구/해결 방법이라고 생각하기 때문에 일부러 그것을 공관으로 제출하지 않았다.물론, 네가 원한다면, 나는 여전히 이렇게 할 수 있다. 나는 이렇게 하면 네가 그것을 쉽게 되돌아볼 수 있을 것이라고 생각한다. 그렇지?

토론 #21

공관의 장점은 인터넷에서 차이점을 볼 수 있다는 것이다. 그것에 대해 논평을 하고 합병하면 당신을git 역사상의 공헌자로 기록할 것이다.

토론 #22

보아하니 jquery rails는 //= require jquery//= require jquery2

토론 #23

로 변경해서 jquery 2를 포함할 수 있습니다. 또 다른 방법은 jquery 3.0을 사용하는 방법:https://code.jquery.com/jquery-migrate-3.0.0.js

토론 #24

Another way to make this work with jquery 3.0 is to use jquery migrate


추가 스크립트를 추가하지 않는 한 후퇴 및 전진 단추를 제외하고는 작업을 수행할 수 없습니다.https://github.com/defunkt/jquery-pjax/issues/638#issuecomment- 259090560

토론 #25

jquery pjax는 현재 jquery 버전 1.12에서 3.2까지 함께 사용할 수 있습니다.https://github.com/defunkt/jquery-pjax/releases/tag/v2.0.0

토론 #26

@mislav 감사합니다!나는 나의 jQuery3 프로젝트에서 jQueryPJAX 2.0.0으로 업그레이드했고 jQueryMigrate를 삭제했다. 모든 것이 정상인 것 같다!🎉

좋은 웹페이지 즐겨찾기