1

好的,所以我做了一些研究,我有点卡在这个 ajax 事情上。

我有两个 A HREF,分类为“测试”,发送 ajax 调用,然后是“.page”,类似于实际的分页下一步按钮。当我单击页面按钮时,它应该将隐藏的输入字段值更改为第 2 页,这将作为转到第 2 页但通过 ajax。现在我只是硬编码更改为 page-2 和 console.log 输入隐藏字段。

当前的 AJAX 调用不发送任何发布数据,它只是用于测试,它所做的只是回显一个分页按钮的 href。

我正在尝试制作 AJAX 分页。

当我单击测试时,它基本上将当前的 Asdasd 链接(类似于分页按钮)替换为具有分页作为文本而不是 asdasd 的相同链接。这个链接应该会改变隐藏的输入值,但是目前因为分页链接是由 AJAX 生成的,并且是在页面加载后加载的,所以初始的 jQuery 不起作用,它什么也不做。如果我用 ajax 调用回显相同的 jquery,它可以工作,但问题是,我不想每次调用 ajax 时都重新加载 jquery 脚本。

我认为我可以像这样使用 .ready :

$('.page').ready(function(){
     $('.asdasd, .page').on("click", function(e){

     e.preventDefault();

     if($(this).hasClass('page')){
          console.log(true);
     }

     $('.new-page').val('page-2');

     console.log($('.new-page').val());
});

我认为总是会尝试查看页面是否准备好或其他东西,但这甚至没有意义。

几乎我所知道的唯一有效的是,我必须发送 jquery 脚本并在每个 jquery 调用中再次回显它,以便重新加载 HTML DOM 元素并且 jquery 识别它。

我的问题是,有没有什么方法可以只加载一次 jquery 脚本,并让它总是选择那个分页按钮,即使它是在页面加载后加载的?

4

1 回答 1

1

使用 jQuerys 的delegate方法:

描述:基于一组特定的根元素,将处理程序附加到与选择器匹配的所有元素的一个或多个事件,现在或将来。

$(document.body).delegate('.asdasd, .page', 'click', function(e) {
    e.preventDefault();

    if ($(this).hasClass('page')) {
        console.log(true);
    }

    $('.new-page').val('page-2');

    console.log($('.new-page').val());
});​
于 2012-07-27T00:26:25.223 回答