포착되지 않은 TypeError : 정의되지 않은 'createDocumentFragment'속성을 읽을 수 없습니다.
웹 페이지를 가져 와서 부트 스트랩 2.3.2 팝 오버에로드하려고합니다. 지금까지 :
$.ajax({
type: "POST",
url: "AjaxUpdate/getHtml",
data: {
u: 'http://stackoverflow.com'
},
dataType: 'html',
error: function(jqXHR, textStatus, errorThrown) {
console.log('error');
console.log(jqXHR, textStatus, errorThrown);
}
}).done(function(html) {
console.log(' here is the html ' + html);
$link = $('<a href="myreference.html" data-html="true" data-bind="popover"'
+ ' data-content="' + html + '">');
console.log('$link', $link);
$(this).html($link);
// Trigger the popover to open
$link = $(this).find('a');
$link.popover("show");
이 코드를 활성화하면 오류가 발생합니다.
포착되지 않은 TypeError : 정의되지 않은 'createDocumentFragment'속성을 읽을 수 없습니다.
여기서 문제는 무엇이며 어떻게 해결할 수 있습니까?
오류에 대한 이유는이다 $(this).html($link);
당신에 .done()
콜백.
this
콜백에서은 (또는 참조해야하는 위치를 예상하는대로)가 [...]object that represents the ajax settings used in the call ($.ajaxSettings merged with the settings passed to $.ajax)[...]
아닌을 $(".btn.btn-navbar")
참조합니다.
이 오류는 jQuery를 내부적으로 호출하기 때문에 발생합니다 .createDocumentFragment()
온 ownerDocument
당신이 통과 개체의 this
당신이 실행할 때 $(this).html($link);
하지만 코드에서이 this
DOMElement하지이며,이 없습니다 ownerDocument
. 그 때문에 ownerDocument
입니다 undefined
및 이유 이잖아 createDocumentFragment
에 호출됩니다 undefined
.
요청에 대한 context
옵션 을 사용해야합니다 ajax
. 또는 콜백에서 액세스 할 수있는 변수에 변경하려는 DOMElement에 대한 참조 를 저장해야합니다 .
이 오류 this
는 DOM 요소가 아닌 ajax 객체를 참조하기 때문에 발생합니다. 이 문제를 해결하려면 다음과 같이 할 수 있습니다.
$('form').on('submit', function(){
var thisForm = this;
$.ajax({
url: 'www.example.com',
data: {}
}).done(function(result){
var _html = '<p class="message">' + result + '</p>';
$(thisForm).find('#resultDiv').html(_html);
});
});
'programing' 카테고리의 다른 글
Flask와 Tornado를 함께 사용하십니까? (0) | 2021.01.14 |
---|---|
Chrome 개발자 도구> 리소스> 쿠키> http 열, 여기에 체크 표시가 HttpOnly 쿠키를 나타 냅니까? (0) | 2021.01.14 |
Kotlin에서 사용하지 않는 매개 변수 표시 (0) | 2021.01.14 |
Laravel 5.2-pluck () 메서드는 배열을 반환합니다. (0) | 2021.01.14 |
React Hooks useEffect에서 oldValues와 newValues를 비교하는 방법은 무엇입니까? (0) | 2021.01.14 |