jQuery load()/ event delegation问题

时间:2013-07-10 22:03:05

标签: javascript jquery html event-delegation

好的,我刚刚发现事件授权,Click Issue: Dynamically Generated Links Not Triggering Click Function我的问题如下。

通过jQuery load()调用加载UL。

<ul id="activityPaganation" class="paganation">
    <li>1</li>
    <li><a href="#">2</a></li>
    <li><a href="#">3</a></li>
    <li><a href="#">4</a></li>
    <li><a href="#">5</a></li>
    <li><a href="#">6</a></li>
</ul>

第一段jQuery将使用异形链接加载上述UL。 jquery的第二部分从你点击的异教链接中获取异形页码,现在是问题:

点击异教链接后,我无法将更新的页面加载到#accountActivity,这是一个委托问题,还是我正在尝试做的就是不可能,不是异教链接能够看到#accountActivity,因为这是加载初始负荷的地方吗?!

$(document).ready(function() {
    if($('#accountActivity')) {
       $('#accountActivity').load('ajax.php?id=3');
    }

    $(document).on("click", "#activityPaganation li a", function(e) {
       e.preventDefault();
       var pid = $(this).text();
       $('#accountActivity').load('ajax.php?id=3&value='+pid);
    });
});

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

$(document).ready(function() {
    if($('#accountActivity')) {
       $('#accountActivity').load('ajax.php?id=3');
    }

    $('#activityPaganation').on("click", "li a", function(e) {
       e.preventDefault();
       var pid = $(this).text();
       $.post('ajax.php',{id:'3',value:pid},function(response) {
            $('#accountActivity').html(response);
       });
    });
});

如果#activityPaganation未动态创建。

答案 1 :(得分:0)

我认为你有正确的想法,只是语法似乎有点偏离我。我把它放在这里,有点像jQuery noob,如果它不起作用,请耐心等待:

将第二个代码块更改为:

$('#activityPaganation li a').click(function(e) {
   e.preventDefault();
   var pid = $(this).text();
   $('#accountActivity').load('ajax.php?id=3&value='+pid);
});

我总是使用alerts()来查明它是否拾取某些变量。在为pid分配值后尝试发出警报(即:alert(pid);)。如果它是空白的,您知道它没有被正确分配。如果它根本没有出现,那么它就会出现问题。