JQuery getJson成功函数在单击按钮时启动

JQuery getJson success function is firing on button click

本文关键字:按钮 启动 单击 getJson 成功 函数 JQuery      更新时间:2023-09-26

我在启动getjson成功事件时遇到问题。当我在$(document).ready上调用$.getJSON时,它工作得很好,当我把相同的代码放在按钮下点击时,它就不工作了。

工作罚款(低于$(document).ready)

<html>
<head>
<title>API Logger</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.min.js" ></script>
    <script>
        "use strict";
        $(document).ready(function(){
                var flickerAPI = "http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?";
                $.getJSON( flickerAPI, 
                {
                    tags: "mount everest",
                    tagmode: "any",
                    format: "json"
                },
                function(data)
                {
                    alert("success");
                });
        });
    </script>
</head>
    <body>
        <form>
            <button id="btn1" >Execute</button>
        </form>
    </body>

不工作(低于$('#btn1').on('click',function()

<html>
<head>
<title>API Logger</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.min.js" ></script>
    <script>
        "use strict";
        $(document).ready(function(){
            $('#btn1').on('click', function() {
                var flickerAPI = "http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?";
                $.getJSON( flickerAPI, 
                {
                    tags: "mount everest",
                    tagmode: "any",
                    format: "json"
                },
                function(data)
                {
                    alert("success");
                });
            });
        });
    </script>
</head>
    <body>
        <form>
            <button id="btn1" >Execute</button>
        </form>
    </body>

它不起作用,因为你把按钮放在表格中

<form>
    <button id="btn1" >Execute</button>
</form>

它会在你每次点击时提交,在其他意义上它会重新加载页面。

只需在表单中定义按钮的类型。

试试这个

<form>
    <button type="button" id="btn1" >Execute</button>
</form>

JSFIDDLE

或者只是在点击事件中添加return false

$(document).ready(function () {
    $('#btn1').on('click', function () {
        var flickerAPI = "http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?";
        $.getJSON(flickerAPI, {
            tags: "mount everest",
            tagmode: "any",
            format: "json"
        }, function (data) {
            alert("success");
        });
        return false;
    });
});

JSFIDDLE