나는 클릭 및 기타 메소드가 바인딩 된 여러 요소가있는 custom.js 파일이 있습니다. 전체 파일은 document.ready()에 캡슐화되어 모든 것이 작동합니다. 그러나 AJAX 게시물을 할 때 분명히 document.ready()는 현재 페이지에서 다시 발생하지 않습니다. 어쨌든 document.ready()를 다시 호출 할 수 있습니까? 아니면 명명 된 함수에서 모든 것을 내 create.js.erb라는 양식으로 호출해야합니까?ajax 게시 후 document.ready 실행
답변
항상 모든 것을 하나의 함수 (loadfunction 또는 무언가)에 넣을 수 있으며 문서가로드 될 때 해당 함수를 호출하고 다시 아약스가로드 될 때 함수를 호출 할 수 있습니다. 해킹 된 솔루션이지만 충분히 잘 작동합니다.
그래서 다음 $(document).onready(function() {
과 끝 브래킷 }
사이에 모든 것을 가지고 그리고 }
로 끝나는 function OnloadFunction() {
에 넣어. 그런 다음 $document.onready(OnloadFunction);
예를 넣어 : 당신이로 변신 것
$(document).ready(function() {alert("test");});
을 가지고 : 당신이 원할 때마다 그런 다음 OnloadFunction
를 호출 할 수 있습니다
function OnloadFunction()
{
alert("test");
}
$(document).ready(OnloadFunction);
. 우리가 .query() 플러그인을 정의해야합니다
첫째 :
단어에 코드를 넣으려면'$ (document) .ready (function DocReady() {...}); ' –
편집 된 게시물을보십시오.) – Ben
잘 했어! :-) –
나는 성공적으로 다음과 같은 패턴을 사용했습니다.
// jQuery.fn.query() emulates the behavior of .querySelectorAll()
// by allowing a full/complex selector to be matched against
//a small slice of the dom.
$.fn.query = function (selector) {
var scopeElms = this,
scopeIsDoc = scopeElms.length === 1 && scopeElms.is('html') ,
// check for obviously simple selectors.... (needs more elegance)
isComplexSelector = /\s/.test(selector.replace(/\s*([|~*$\^!]?=|,)\s*/g, '$1')),
elms;
if (scopeIsDoc || isComplexSelector)
{
elms = $(selector);
if (scopeElms[0])
{
elms = elms.filter(function(){
var i = scopeElms.length;
while (i--) {
if (scopeElms[i] === this || $.contains(scopeElms[i], this))
{
return true;
}
}
return false;
});
}
}
else
{
elms = scopeElms.filter(selector)
.add(scopeElms.find(selector));
}
return $(elms);
};
우리는 다음 이벤트 "domupdated"우리의 정의에 또한 우리의 초기화 함수를 작성하고 "준비"이벤트에 바인딩합니다. 우리는 전체 문서하거나 업데이트 된 조각 중 하나의 요소를 찾을 수 .query()
을 사용하는 init 함수 ... 우리가 DOM에 새로운 요소의 블록을 삽입 할 때마다 다음
// Here we define our DOM initializations
$(document).bind('ready domupdated', function (e, updatedFragment) {
var root = $(updatedFragment || 'html');
// Begin imaginary initialization routines
root.query('form').validate();
root.query('.sidebar .searchform input#search').autocomplete();
// etc...
});
내 (같은 Ajax 요청이 완료되면) 우리는 다음 domupdated
이벤트를 트리거 매개 변수로 업데이트 된 DOM 조각을 통과 -과 같이 :
...
var ajaxedDom = $(xhr.resultText).find('#message');
ajaxedDom.appendTo('#modal');
$(document).trigger('domupdated', [ajaxedDom]);
이 나를 위해,이 설정 한 DOM을 INITING에서 모든 고통을합니다. 그것은 하나의 init 루틴 세트를 유지하고 재미있는 것에 초점을 맞출 수있게한다.
모든 아약스 호출 후에 트리거되는 이벤트가 있습니다. ajaxComplete이라고합니다.
$(document).ready(function() {
AjaxInit()
});
$(document).ajaxComplete(function() {
AjaxInit()
});
function AjaxInit() {
alert("test");
}
나는 다음과 같은 패턴을 만들었습니다. ;) 모든 코드가 파일 (ajax)의로드 된 부분 안에 있습니다. '성공', '완료'등을 사용하지 않습니다. jquery 아약스로드의 기능 확장.
먼저 모든 기능을 구현해야합니다. 예 : _autostart();
function _autostart() {
... all code here ....
}
본문에서 우리는 아약스로드가 끝날 때 실행해야하는 모든 js 코드를 붙여 넣습니다.
그런 다음이 함수를 time 트리거로 실행하기 만하면됩니다. ;)
setTimeout("_autostart();",0000);
그게 전부입니다. 끝난. :)
물론 우리는 ajax 후 html 코드의 모든 이벤트에 js 코드 함수를 사용할 수 있습니다. 예 : 'onchange', 'onclick'등 너무 효과가 있습니다. :)
나는 약간의 트릭을 사용했습니다 : 벤과 fotanus '답변을 결합
$(document).ajaxComplete(function() {
$(".log").text("Triggered ajaxComplete handler.");
});
- 1. jQuery AJAX $ _POST on document.ready?
- 2. AJAX 호출 후 JQuery 실행
- 3. page postback 후 document.ready 함수를 호출하십시오.
- 4. 게시 후 알림 게시/구독
- 5. 게시 후 Jquery로 텍스트 변경
- 6. ajax 특수 문자 게시
- 7. fancybox ajax iframe에 게시
- 8. jquery ajax 게시
- 9. JQuery를 사용하여 Ajax 게시 후 텍스트 상자의 값을 얻는 방법
- 10. $ .ajax 게시/비 게시 행동 차이?
- 11. JQuery와 document.ready 이벤트가 발생이
- 12. 게시 후 빌드 실패
- 13. 성능에 대해 document.ready 대신 ajax 호출 인라인 자바 스크립트 코드
- 14. jquery - document.ready 모든 이미지가 IE에로드 된 후 호출 됨
- 15. 잠시 동안 실행 한 후 AJAX 요청이 중단되는 이유는 무엇입니까?
- 16. jQuery Ajax 실행 후 Loading Loading 메시지 Loading!
- 17. jQuery ajax 요청을 실행 한 후 페이지가 완전히로드되지 않습니다.
- 18. ASP.NET jQuery Ajax 게시 양식
- 19. jquery를 사용하는 Ajax 게시 메서드
- 20. jQuery ajax 데이터 게시 문제
- 21. Ajax 폼에서 여러 변수 게시
- 22. Jquery Ajax webservice에 json 게시
- 23. jquery, ajax, div에 게시 결과로드
- 24. 변수가 실행 된 후 표시되지
- 25. document.ready 콜백 푸시 : 가능합니까?
- 26. jquery : document.ready 메소드 선택
- 27. document.ready in jQuery
- 28. Ajax 요청 후 장고 모델 반환 Ajax 요청 후
- 29. AJAX 패널로드시 JavaScript 실행
- 30. ajax 후 인증이 끊어집니다.
어떻게 POST가'document.ready'를 멈 춥니 까? 또한 js 파일의 이름을 지정해도 실제로 코드를 볼 수는 없습니다. – tcooc
그런가요? http://stackoverflow.com/q/562229/93732 –
아주 간단합니다. AJAX 게시물을 작성하면 DOM이 다시로드되지 않으므로 document.ready가 다시 실행되지 않습니다. 내 질문은 구체적으로 내가 모르는 것을 할 수있는 방법이있는 경우입니다. js 파일의 내용은 질문과 관련이 없으며 게시하기에는 너무 길다. 파일의 코드는 $ ("a")와 같은 표준 태그 기반 조작을 수행합니다. click (function() {return false;}); –