0

我的设置非常简单,我无法理解为什么这不起作用。我知道这是正确的,但它不起作用。

.navigate-button正在被 ajax 处理,.overlay-content因此.overlay-content不在页面加载时的 dom 中,因此使用.on

当我单击链接时,它只会像往常一样将我带到该页面。我知道即使不被束缚.navigate-button

标记:

<div class="overlay" id="overlay">
    <div class="overlay-content--bg">
        <div class="overlay-content">

    <a class="navigate-button left" href="/question.php?id=<?php echo $json->id-1;$json->id+1; ?>">
        <
    </a>
    <a class="navigate-button right" href="/question.php?id=<?php echo $json->id+1; ?>">
        >
    </a>
        </div>
    </div>
</div>

JS:如果我在控制台中运行此代码,它会按预期工作

$('#overlay').on('click','.navigate-button', function(){
    var id = $(this).attr('href');
    id = id.split('=');
    console.info(id[1]);
    callPage(id[1]);
    return false;
});

function callPage (id) {
    $.ajax({
        url:'/question.php?id='+id,
        success: function(data){
            $('.overlay-content').html(data);
            FB.XFBML.parse(document.getElementById('overlay'));
            $('.overlay').fadeIn();
        }
    });
}
4

2 回答 2

1

我们在聊天中解决了这个问题。Jamie 的问题是.navigate-buttondiv 上的 click 事件没有冒泡到#overlaydiv,因为它被调用.stopPropagation它的处理程序捕获和处理。解决方案是删除该中间处理程序。

于 2012-11-25T22:11:00.303 回答
0

你试过这个吗?

$(document).on('click', '.navigate-button', function() {
    YOUR FUNCTION
});
于 2012-11-25T20:41:30.443 回答