Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.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
Javascript Ajax使部分jquery无法按预期工作_Javascript_Php_Jquery_Html_Ajax - Fatal编程技术网

Javascript Ajax使部分jquery无法按预期工作

Javascript Ajax使部分jquery无法按预期工作,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,当我在同一个页面或外部.js页面上使用ajax代码时,它不起作用,并使代码的其他部分(jquery)不起作用。ajax必须在.kb上运行 在使用时,它会影响(在添加ajax之前工作): “后退”按钮未预先设置 后退按钮(.kb sub li:first child)不再返回 如果我将ajax请求放在另一个单击(函数)或另一个页面上,而不是包含在外部页面中,也会发生同样的情况 这是我的密码: $(document).ready(function() { $('.kb li').cl

当我在同一个页面或外部.js页面上使用ajax代码时,它不起作用,并使代码的其他部分(jquery)不起作用。ajax必须在.kb上运行

在使用时,它会影响(在添加ajax之前工作):

  • “后退”按钮未预先设置
  • 后退按钮(.kb sub li:first child)不再返回
如果我将ajax请求放在另一个单击(函数)或另一个页面上,而不是包含在外部页面中,也会发生同样的情况

这是我的密码:

$(document).ready(function() {  
    $('.kb li').click(function() {
        var parent = $(this).data('parent');

        $('.kb').fadeOut();
        $('.kb-sub').delay(400).fadeIn();

        $(".kb-sub li:contains('Back')").remove();
        $('.kb-sub').prepend('<li>Back</li>');

        $('.kb-sub li:first-child').click(function() {
            $('.kb-sub').fadeOut();
            $('.kb').delay(400).fadeIn();
        });

        $.ajax({
            type:"GET",
            url:"data.php",
            data:"parent="+parent,
            success:function(result){
                $(".kb-sub").html(result);
            }
        });
    });
});
$(文档).ready(函数(){
$('.kb li')。单击(函数(){
var parent=$(this.data('parent');
$('.kb').fadeOut();
$('.kb sub').delay(400.fadeIn();
$(“.kb子li:contains('Back')”).remove();
$('.kb sub').prepend('
  • Back
  • '); $('.kb子li:first child')。单击(函数(){ $('.kb sub').fadeOut(); $('.kb').delay(400.fadeIn(); }); $.ajax({ 键入:“获取”, url:“data.php”, 数据:“parent=”+parent, 成功:功能(结果){ $(“.kb sub”).html(结果); } }); }); });

    谢谢你的关注。

    它正在做它应该做的事情,它似乎不起作用的原因是因为你在
    前面加了
    后面的
    li
    ,然后用
    .kb sub
    元素替换
    .kb sub
    元素中的所有html,并将ajax请求的结果替换为
    $(.kb sub”).html(result),删除刚才“预先设置”的内容

    为了解决这个问题,我建议将代码向上移动到ajax调用的成功处理程序中,如下所示:

    $(document).ready(function() {  
        $('.kb li').click(function() {
            var parent = $(this).data('parent');
    
            $.ajax({
                type:"GET",
                url:"data.php",
                data:"parent="+parent,
                success:function(result){
                    $(".kb-sub").html(result);
    
    
                    $('.kb').fadeOut();
                    $('.kb-sub').delay(400).fadeIn();
    
                    $(".kb-sub li:contains('Back')").remove();
                    $('.kb-sub').prepend('<li>Back</li>');
    
                    $('.kb-sub li:first-child').click(function() {
                        $('.kb-sub').fadeOut();
                        $('.kb').delay(400).fadeIn();
                    });
                }
            });
        });
    });
    
    $(文档).ready(函数(){
    $('.kb li')。单击(函数(){
    var parent=$(this.data('parent');
    $.ajax({
    键入:“获取”,
    url:“data.php”,
    数据:“parent=”+parent,
    成功:功能(结果){
    $(“.kb sub”).html(结果);
    $('.kb').fadeOut();
    $('.kb sub').delay(400.fadeIn();
    $(“.kb子li:contains('Back')”).remove();
    $('.kb sub').prepend('
  • Back
  • '); $('.kb子li:first child')。单击(函数(){ $('.kb sub').fadeOut(); $('.kb').delay(400.fadeIn(); }); } }); }); });