Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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
Jquery 重复的JSON结果_Jquery_Json_Ajax - Fatal编程技术网

Jquery 重复的JSON结果

Jquery 重复的JSON结果,jquery,json,ajax,Jquery,Json,Ajax,我制作了一个简单的脚本来调用JSON文件并在网站上显示 不幸的是,它显示了双倍的结果。 问题是由图片引起的。如果我删除它们,文本只显示一次 这是脚本 $(function () { $('#members p, #members p span, #main_content span').on('click', function () { var attr = $(this).attr('data-number'); if (typeof attr !== typeof unde

我制作了一个简单的脚本来调用JSON文件并在网站上显示

不幸的是,它显示了双倍的结果。 问题是由图片引起的。如果我删除它们,文本只显示一次

这是脚本

$(function () {

$('#members p, #members p span, #main_content span').on('click', function () {
    var attr = $(this).attr('data-number');
    if (typeof attr !== typeof undefined && attr !== false) {
        var number = $(this).data('number');
        console.log(number);
        $.ajax("members.json", {
            dataType: 'json',
            success: function (response) {

                $(".images_ajax").css('display', 'block');
                $(".images_ajax_sub").append(response[number].img + response[number].text);
            }
        }),
        $(function () {
            $('.close_ajax').click(function () {
                $(".images_ajax_sub h1, .images_ajax_sub p, .images_ajax_sub .iMembers").remove();
                $(".images_ajax").css('display', 'none');
            })
        })
    }
})});
如果我从JSON文件中删除该图像,那么我只会得到一个未定义的图像,因为该图像丢失了而不是两个

这是JSON文件的一部分

"name": {
"img": "<div class=\"iMembers\"><img src = \"../images/images/images_of_members/some.jpg\"></div>",
"text": "<p>some text</p>"
}
“名称”:{
“img”:“,
“文本”:“一些文本”
}

我的猜测是,您的AJAX调用被触发了两次。查看
单击
处理程序绑定到的DOM节点:

$('#members p, #members p span, #main_content span').on('click ...
   ^^^^^^^^^^  ^^^^^^^^^^^^^^^

由于不阻止事件冒泡,因此单击
span
会触发绑定的事件处理程序,然后冒泡DOM并再次触发
span
的父节点:
p
。因此,请尝试绑定到或。

请提供一个演示来复制问题。解释一点也不清楚,没有足够的代码供我们复制。您忘记在('click',function(event){…event.preventDefaults();}(停止传播)。我确定事件被调用了2次。是的,我也确定这一点。他应该在第一次调用时停止事件传播。我尝试了function(e){e.stopPropagation()我在jQuery选择器中只留下了span元素。这些元素都不起作用。我得到了双重结果。你能告诉我应该怎么做吗?我一定是个白痴。我把脚本src文件放在网页上的两个位置。一个在标题部分,另一个在结束正文标记之前。我接受了你的答案。这不是问题所在情况是这样的,但情况可能不同。谢谢