0

这是我从网上几条不同的信息中构建的代码:

http://jsfiddle.net/spadez/qKyNL/6/

$.ajax({
    url: "/ajax_json_echo/",
    type: "GET",
    dataType: "json",
    timeout: 5000,
    beforeSend: function () {
        // Fadeout the existing content
        $('#content').fadeTo(500, 0.5);
    },
    success: function (data, textStatus) {
        // TO DO: Load in new content
        // Scroll to top
        $('html, body').animate({
            scrollTop: '0px'
        }, 300);
        // TO DO: Change URL
        // TO DO: Set number as active class
    },
    error: function (x, t, m) {
        if (t === "timeout") {
            alert("Request timeout");
        } else {
            alert('Request error');
        }
    },
    complete: function () {
        // Fade in content
        $('#content').fadeTo(500, 1);
    },
});

我的问题是,如何在使用 e.prevent 默认值时通过单击分页列表链接之一(如 1 或 2)触发 ajax 请求,因此它是可降解的(如果禁用 JavaScript,它仍然可以工作)。我想我想要做的是伪代码中的以下内容:

  1. 收听点击分页链接
  2. 获取点击的链接数(即点击了 1 或 2 次)
4

3 回答 3

1

尝试

$('a').click(function(){
    var number = $(this).attr('href');//get the pg=1 value on the href
    alert(number);
    //ajax here
});
于 2013-08-29T15:04:29.820 回答
1

我不确定我是否完全理解你的问题,但是这样的事情应该有效:

$(function() {
    var clicks = {};
    var sendAjax = function(href) {
        //do something with href
        $.ajax({
            url: "/ajax_json_echo/",
            type: "GET",
            dataType: "json",
            timeout: 5000,
            beforeSend: function () {
                // Fadeout the existing content
                $('#content').fadeTo(500, 0.5);
            },
            success: function (data, textStatus) {
                // TO DO: Load in new content
                // Scroll to top
                $('html, body').animate({
                    scrollTop: '0px'
                }, 300);
                // TO DO: Change URL
                // TO DO: Set number as active class
            },
            error: function (x, t, m) {
                if (t === "timeout") {
                    alert("Request timeout");
                } else {
                    alert('Request error');
                }
            },
            complete: function () {
                // Fade in content
                $('#content').fadeTo(500, 1);
            },
        });
    };
    $('a').click(function() {
        var href = $(this).attr('href');
        clicks[href] = clicks[href] ? clicks[href] + 1 : 1;

        sendAjax(href);
        return false; //disable the link
    });
});
于 2013-08-29T15:07:44.600 回答
0

你不能在那些链接 1 和链接 2 上设置一个 onclick 吗?

前任:

link1.click(function() {
  // do stuff with the ajax    
});
于 2013-08-29T15:05:37.910 回答