一旦ajax完成,jQuery就会模拟onClick

时间:2014-03-28 16:20:45

标签: jquery ajax

我只是尝试加载一个抓取设备信息并将其发送到API的页面。成功之后,我需要它来指向onCLick page1函数。

$(document).ready(function () {
                // load index page when the page loads
               var deviceID = "300"; //for testing purposes
                $.ajax({
                    url: "funcEntity.cfc?method=setSession&returnformat=json",
                    dataType: "json",
                    data: {
                        deviceID: deviceID
                    },
                    success: function(result) {
                            // Simulate function to open #page1
                    }
                });
                $("#page1").click(function () {
                    // load home page on click
                    $("#response").html("TESTING 1");
                });
                $("#page2").click(function () {
                    // load about page on click
                    $("#response").html("TESTING 2");
                });
                $("#page3").click(function () {
                    // load contact form onclick
                    $("#response").html("TESTING 3");
                });
                $("#page4").click(function () {
                    // load contact form onclick
                    $("#response").html("TESTING 4");
                });
                $("#page5").click(function () {
                    // load contact form onclick
                    $("#response").html("TESTING 5");
                });
            });

我尝试$('#foo').trigger('click');也没有成功。我错过了什么?

1 个答案:

答案 0 :(得分:1)

我不明白为什么你需要所有这些点击事件。我让这个在我的服务器上工作。

为什么不将所有这些点击事件分配给所有相关的导航按钮,然后将点击事件附加一次,而不是使用所有这些点击事件。然后,您可以根据id属性加载页面。

我认为你需要将click事件与.on()绑定到那些元素,我在下面对所有带有.nav类的元素进行绑定,或者它以某种方式与ajax代码的放置有关(不太可能) )。我将它移动到点击事件下方。

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
</head>
<body>
    <button id="home" class="nav">Home</button>
    <button id="about" class="nav">About Us</button>
    <button id="contact" class="nav">Contact</button>
    <div id="response"></div>

    <script type="text/javascript">
        $(document).ready(function() {

            // bind click event to nav elements
            $('.nav').on('click', function() {
                // get the id
                var page = $(this).attr('id');

                // now you can use the id to load a specific page
                switch(page) {
                  case 'home':
                    $('#response').html('Redirect to Home');
                    break;
                  case 'about':
                    $('#response').html('Redirect to About Us');
                    break;
                  case 'contact':
                    $('#response').html('Redirect to Contact');
                    break;
                }
            });

            // substitute your ajax code here
            $.ajax({
                url: "mycode.php",
                type: "post"
            }).done(function() {
                // trigger home page click
                $('#home').trigger('click');
            });
        });
    </script>
</body>
</html>