Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 不刷新页面的两个不同ajax请求_Php_Jquery_Ajax - Fatal编程技术网

Php 不刷新页面的两个不同ajax请求

Php 不刷新页面的两个不同ajax请求,php,jquery,ajax,Php,Jquery,Ajax,我有一个网站,它使用ajax在单击时直接将帖子加载到页面 但是。。。我在同一页上还有一个ajax联系人表单。但是,如果我先单击一个帖子,然后想稍后发送一条消息,它就会失败。但是,如果我刷新页面,直接转到联系人表单并发送消息,它在发送时不会失败。有没有什么方法可以在不刷新页面的情况下“重新加载”ajax,这样您就可以使用ajax在我的站点上执行多项操作 $(document).ready(function() { function yournewfunction() {

我有一个网站,它使用ajax在单击时直接将帖子加载到页面

但是。。。我在同一页上还有一个ajax联系人表单。但是,如果我先单击一个帖子,然后想稍后发送一条消息,它就会失败。但是,如果我刷新页面,直接转到联系人表单并发送消息,它在发送时不会失败。有没有什么方法可以在不刷新页面的情况下“重新加载”ajax,这样您就可以使用ajax在我的站点上执行多项操作

$(document).ready(function() {

    function yournewfunction() {

        var requestCallback = new MyRequestsCompleted({
            numRequest: 3,
            singleCallback: function() {
                alert("I'm the callback");
            }
        });

        var width = 711;
        var animationSpeed = 800;
        var pause = 3000;
        var currentSlide = 1;


        var $slider = $("#slider");
        var $slideContainer = $(".slides");
        var $slides = $(".slide");
        var $toggleRight = $("#right");
        var $toggleLeft = $("#left");

        $toggleRight.click(function() {
            $slideContainer.animate({
                'margin-left': '-=' + width
            }, animationSpeed, function() {
                currentSlide++;
                if (currentSlide === $slides.length) {
                    currentSlide = 1;
                    $slideContainer.css('margin-left', 0);
                }
            });
        });

        $toggleLeft.click(function() {
            if (currentSlide === 1) {
                currentSlide = $slides.length;
                $slideContainer.css({
                    'margin-left': '-' + width * ($slides.length - 1) + 'px'
                });
                $slideContainer.animate({
                    'margin-left': '+=' + width
                }, animationSpeed, function() {
                    currentSlide--;
                });
            } else {
                $slideContainer.animate({
                    'margin-left': '+=' + width
                }, animationSpeed, function() {
                    currentSlide--;
                });
            }
        });




        if ($(".slide img").css('width') == '400px' && $(".slide img").css('height') == '400px') {
            $(".options").css("width", "400px");
            $(".slide").css("width", "400px");
            $("#slider").css("width", "400px");
            $(".video-frame").css("width", "400px");
            var width = 400;

        };



        if ($("#slider img").length < 2) {
            $("#right, #left").css("display", "none");

        };



        if ($("iframe").length > 0 && $("iframe").length < 2) {
            $(".options").css("width", "711px");
            $(".slide").css("width", "711px");
            $("#slider").css("width", "711px");
            $(".video-frame").css("width", "711px");
            $('.slide').hide();
            var width = 711;


        };

        if ($(".slide img").css('width') > '400px' && $(".slide img").css('width') < '711px') {
            $(".options").css("width", "600px");
            $(".slide").css("width", "600px");
            $("#slider").css("width", "600px");
            $(".video-frame").css("width", "600px");
            var width = 600;

        };

    }

    $.ajaxSetup({
        cache: false
    });
    $(".post-link").click(function(e) {
        e.preventDefault()
        var post_link = $(this).attr("href");
        $("#single-post-container").html('<img id="loads" src="http://martinfjeld.com/wp-content/uploads/2015/09/Unknown.gif">');
        $("#single-post-container").load(post_link, function(response, status, xhr) {
            if (status == "error") {
                var msg = "Sorry but there was an error: ";
                $("#error").html(msg + xhr.status + " " + xhr.statusText);
            } else {
                $("#main-content").fadeIn(500);
                $("body").addClass("opens");
                yournewfunction();


            }
        });

        requestCallback.requestComplete(true);
        return false;
    });




});


$(function() {

    var form = $('#ajax-contact');

    var formMessages = $('#form-messages');


    $(form).submit(function(event) {
        event.preventDefault();

        var formData = $(form).serialize();

        $.ajax({
            type: 'POST',
            url: $(form).attr('action'),
            data: formData
        }).done(function(response) {
            // Make sure that the formMessages div has the 'success' class.
            $(formMessages).removeClass('error');
            $(formMessages).addClass('success');

            // Set the message text.
            $(formMessages).text(response);

            // Clear the form.
            $('#name').val('');
            $('#email').val('');
            $('#message').val('');
        }).fail(function(data) {
            // Make sure that the formMessages div has the 'error' class.
            $(formMessages).removeClass('success');
            $(formMessages).addClass('error');

            // Set the message text.
            if (data.responseText !== '') {
                $(formMessages).text(data.responseText);
            } else {
                $(formMessages).text('Oops! An error occured and your message could not be sent.');
            }
        });
    });


});
$(文档).ready(函数(){
函数yournewfunction(){
var requestCallback=新的MyRequestsCompleted({
数量要求:3,
singleCallback:function(){
警惕(“我是回叫”);
}
});
var宽度=711;
var animationSpeed=800;
var=3000;
var currentSlide=1;
变量$slider=$(“#slider”);
var$slideContainer=$(“.slides”);
变量$slides=$(“.slide”);
var$toggleRight=$(“#right”);
var$toggleLeft=$(“#左”);
$toggleRight。单击(函数(){
$slideContainer.animate({
“左边距”:“-=”+宽度
},动画速度,函数(){
currentSlide++;
如果(当前幻灯片==$slides.length){
currentSlide=1;
$slideContainer.css('margin-left',0);
}
});
});
$toggleLeft。单击(函数(){
如果(当前幻灯片===1){
currentSlide=$slides.length;
$slideContainer.css({
“左边距”:“-”+宽度*($slides.length-1)+“px”
});
$slideContainer.animate({
“左边距”:“+=”+宽度
},动画速度,函数(){
当前幻灯片--;
});
}否则{
$slideContainer.animate({
“左边距”:“+=”+宽度
},动画速度,函数(){
当前幻灯片--;
});
}
});
如果($(“.slide img”).css('width')=='400px'&&$(“.slide img”).css('height')=='400px'){
$(“.options”).css(“宽度”,“400px”);
$(“.slide”).css(“宽度”,“400px”);
$(“#滑块”).css(“宽度”,“400px”);
$(“.video frame”).css(“宽度”,“400px”);
var宽度=400;
};
如果($(“#滑块img”)。长度小于2){
$(“右”、“左”).css(“显示”、“无”);
};
如果($(“iframe”).length>0&$(“iframe”).length<2){
$(“.options”).css(“宽度”,“711px”);
$(“.slide”).css(“宽度”,“711px”);
$(“#滑块”).css(“宽度”,“711px”);
$(“.video frame”).css(“宽度”,“711px”);
$('.slide').hide();
var宽度=711;
};
如果($(“.slide img”).css('width')>'400px'&&($(“.slide img”).css('width')<'711px'){
$(“.options”).css(“宽度”,“600px”);
$(“.slide”).css(“宽度”,“600px”);
$(“#滑块”).css(“宽度”,“600px”);
$(“.video frame”).css(“宽度”,“600px”);
var宽度=600;
};
}
$.ajaxSetup({
缓存:false
});
$(“.post link”)。单击(函数(e){
e、 预防默认值()
var post_link=$(this.attr(“href”);
$(“#单邮政集装箱”).html(“”);
$(“#单邮件容器”).load(邮件链接,函数(响应,状态,xhr){
如果(状态=“错误”){
var msg=“抱歉,出现错误:”;
$(“#error”).html(msg+xhr.status+“”+xhr.statusText);
}否则{
$(“主要内容”).fadeIn(500);
$(“正文”).addClass(“打开”);
yournewfunction();
}
});
requestCallback.requestComplete(true);
返回false;
});
});
$(函数(){
var form=$(“#ajax联系人”);
var formMessages=$(“#表单消息”);
$(表格)。提交(功能(事件){
event.preventDefault();
var formData=$(form).serialize();
$.ajax({
键入:“POST”,
url:$(form.attr('action'),
数据:formData
}).完成(功能(响应){
//确保formMessages div具有“success”类。
$(formMessages).removeClass('error');
$(formMessages).addClass('success');
//设置消息文本。
$(formMessages)。文本(响应);
//清除表格。
$('#name').val('');
$('#email').val('');
$('#message').val('');
}).失败(功能(数据){
//确保formMessages div具有“error”类。
$(formMessages).removeClass('success');
$(formMessages).addClass('error');
//设置消息文本。
如果(data.responseText!=''){
$(formMessages).text(data.responseText);
}否则{
$(formMessages).text('Oops!发生错误,无法发送您的邮件');
}
});
});
});

虽然如果看不到HTML的上下文,如果不给我们更具体的描述哪一行代码无法执行,就很难准确地了解发生了什么,但这很可能是因为一个Ajax调用正在替换一堆HTML,而这些HTML会破坏所有事件处理程序。因此,当您尝试执行第二个Ajax操作时,它的click处理程序不再有效,因此不会发生任何事情

替换DOM元素将丢失附加到原始DOM元素的所有事件处理程序。使用
.html()

典型的解决方案是