如何在Ajax加载后执行javascript?

use*_*734 5 html javascript css ajax jquery

我需要在ajax加载后添加一个类.我首先给几个元素一个"准备好"的类,它启动一个css转换.单击链接li#menu-item-318 a时,它将删除ready类,然后反转css转换,然后加载新的html文档.在Aja加载中,我再次想要将ready类添加到Ajax调用插入的相同元素中.

下面的代码有一个回调来添加就绪类,它可以工作.但是当Ajax加载其设置时,Ready类太早,所以没有转换,即使我设置了应该绘制的线.

我觉得它更好我有一个脚本,用于在html中设置我的过渡元素的类,由ajax调用以实现我想要的效果 - 但这不起作用.那我该怎么办?

演示:http://svensson.streetstylizm.com/点击摄影 - 宝丽来链接,了解它如何反转动画,加载页面然后只显示线条.

码:

$(function () {
    $('.v-line, .h-line, .nav, #ban_image img').addClass('ready');
});

$('li#menu-item-318 a').click(function (e) {
    e.preventDefault();
    var linkNode = this;
    $('.v-line, .h-line, #ban_image img')
        .removeClass('ready')
        .one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend',

    function (e) {
        $(".js-pageTransition").load("photo.html .test> *");
    });
});
Run Code Online (Sandbox Code Playgroud)

Pra*_*man 9

你可以使用ajaxComplete():

$.ajaxComplete(function () {
  // Something to execute after AJAX.
});
Run Code Online (Sandbox Code Playgroud)

以此为例:

$( document ).ajaxComplete(function( event,request, settings ) {
  $( "#msg" ).append( "<li>Request Complete.</li>" );
});
Run Code Online (Sandbox Code Playgroud)

正如Popnoodles所说,当任何AJAX调用完成时,它会执行.因此,如果您正在寻找在一个特定的AJAX调用中执行代码,则需要使用该success函数.

  • @ user3344734请记住,每次ajax调用完成时都会执行此函数.如果您希望它仅在一个实例中发生,则应使用成功回调. (3认同)