单击Event Not Firing - AJAX jQuery

时间:2013-02-16 04:08:28

标签: jquery ajax jquery-mobile anchor

我正在使用数据文件锚标记将用户留在网络应用程序中。

示例HTML

<div class="products_content">    
<a data-file="salt.html?v=1"><img src="assets/images/template/salt.jpg" width="125" height="125" /></a>  

示例js

$('.products_content a').on('click', function(){
    changePage( $(this).attr('data-file') );
});

click事件没有触发,我不知道为什么,因为我使用非常类似的Nav代码,它工作正常。

非常感谢任何帮助。

这是我的changePage函数,不确定是否需要它。

function changePage(fileName) {
    $('.content_container').animate({
        opacity: 0
    }, 500, function () {
        $('.content_loading_container').load('assets/content/' + fileName, function () {
            $('.content_container').delay(250).animate({
                opacity: 1
            }, 500);
        });
        if (fileName == 'home.html?v=1') {
            $('.page').addClass('home');
        } else {
            $('.page').removeClass('home');
        }
        if (fileName == 'services.html?v=1') {
            $('.content_container').addClass('services');
        } else {
            $('.content_container').removeClass('services');
        }
    });
}

2 个答案:

答案 0 :(得分:2)

  1. 在示例HTML中,没有&lt; / div&gt; ,这可能是一个错字;
  2. 您可以尝试委托:

    $(document).delegate('.products_content a', 'click', function(){
        changePage( $(this).attr('data-file') );
        return false;
    })
    

答案 1 :(得分:1)

如果你拥有它,你的代码应该可行。

<div class="products_content">    
<a data-file="salt.html?v=1"><img src="assets/images/template/salt.jpg" width="125" height="125" /> </a>

$('.products_content a').on('click', function(){
    alert('click');
});

此处位于a fiddle.

使用上面的警告替换你的changePage()代码,以确定是否是失败的点击或者是否在changePage()中失败了。