Jquery地址插件发布问题

时间:2010-10-15 12:02:18

标签: jquery-plugins jquery-address

您好我正在学习使用Jquery地址插件,并且正在使用该教程 here

所以这是html

<a href="test1.html" rel="address:/test1">Test 1</a><br />
<a href="test2.html" rel="address:/test2">Test 2</a>

Load Area: <br />
<div id="area"></div>

这是Jquery代码

function loadURL(url) {
        $("#area").load(url);
    }


    // Event handlers
    $.address.init(function(event))
.change(function(event) {
        $("#area").load($('[rel=address:' + event.value + ']').attr('href'));
    })

    $('a').click(function(){
        loadURL($(this).attr('href'));
    });

现在效果很好。但是我想在后退按钮上进行POST调用。所以我替换

$("#area").load($('[rel=address:' + event.value + ']').attr('href'));

var myhref = $('[rel=address:' + event.value + ']').attr('href');
$.post(myhref, function(data) {
        $('#area').html(data);
    });

这会抛出控制台错误“this.value不是函数”。

考虑到我对Jquery(以及一般编程)的非常肤浅的了解,我在这里做错了什么?

2 个答案:

答案 0 :(得分:0)

噢,我希望有人能回答这个问题。我一直试图将这件事情发布到POST一天......它只是希望得到它看起来的一切,但我不知道如何调整它发布。

答案 1 :(得分:0)

function loadURL(url) {
        $.post(url, function(data){
            $("#area").html(data);
        })
    }


    // Event handlers

    $(document).ready(function(){
        $("a").click(function(e){
            e.preventDefault();
            $.address.value($(this).attr("href"));
            $.post($(this).attr("href"), function(data){
                $("#area").html(data);
            })
            return false;
        })
    })

    $(document).ready(function(){
        $.address.init(function(event) { // Initates the address plugin
        }).externalChange(function(event) { //externalChange is browser back/fwd button/address bar
            if(event.path != "/"){
                loadURL(event.path);
            }
        })
    })