如果在初始页面加载后加载它们,如何使用HTML元素作为触发器?

时间:2012-07-27 00:23:09

标签: jquery ajax

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

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

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

我试图制作一个AJAX分页。

当我点击测试时,它基本上将当前的Asdasd链接(就像一个pagiantion按钮)替换为具有Pagination作为文本而不是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脚本一次,并且即使在页面加载后加载了它也总是选择该分页按钮?

1 个答案:

答案 0 :(得分: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());
});​