我有一个在$(准备好)中正常工作的功能:
var externalLink = $("a[href*='/domain.com'], a[href*='.domain.com']");
function externalLinkFix(){
if((externalLink).hasClass("foo")) {
$(externalLink).removeClass("foo").addClass("bar").off('click');
} else {
$(externalLink).addClass("bar");
}
}
$(function(){
externalLinkFix();
});
但是,当我在ajaxComplete调用中调用它时,它什么都不做。
$( document ).ajaxComplete(function(){
externalLinkFix();
});
我必须在ajaxComplete中包含函数内容。为什么我不能通过名称访问函数本身?
$( document ).ajaxComplete(function(){
if((externalLink).hasClass("foo")) {
$(externalLink).removeClass("foo").addClass("bar").off('click');
} else {
$(externalLink).addClass("bar");
}
});
答案 0 :(得分:1)
尝试使用ajaxComplete以这种方式确保项目在绑定之前就已存在
$( document ).ajaxComplete(function( event, xhr, settings ) {
if ( settings.url === "ajax/test.html" ) {
$( ".log" ).text( "Triggered ajaxComplete handler. The result is " +
xhr.responseText );
}
});