2

データファイルアンカータグを使用して、ユーザーをWebアプリ内に保持しています。

サンプル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') );
});

クリックイベントは発生しません。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');
        }
    });
}
4

2 に答える 2

2
  1. サンプル HTML には</div>がありません。これはタイプミスの可能性があります。
  2. デリゲートを試すことができます:

    $(document).delegate('.products_content a', 'click', function(){
        changePage( $(this).attr('data-file') );
        return false;
    })
    
于 2013-02-16T04:49:25.133 に答える
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');
});

ここにそれはフィドルにあります。

上記で行ったように、changePage()コードをアラートに置き換えて、失敗しているのがクリックなのか、それともchangePage()内の何かが失敗しているのかを判断します。

于 2013-02-16T04:18:17.590 に答える