0

jQuery スクリプトのこの部分を Ajax – content スイッチの後に実行するのに問題があります...

/*no right click on img*/
        $('img').bind('contextmenu', function(e) {
            return false;
/*rollover*/
        $('.roll').on('mouseenter mouseout', function() {
            var original = $(this).attr('src');
            var replacement = $(this).data('hoverimg');
            $(this).attr('src', replacement).data('hoverimg', original);
        });
        });

誰かがそれを実行するのを手伝ってくれませんか?

var init = function(){
/*Code*/
}

または

function init(){
/*Code*/
}

私は今少し混乱しています。

4

2 に答える 2

1

私の理解が正しければ、これを ajax の成功時にのみバインドする必要があります。次に、jQuery でバインドとバインド解除を試すことができます。

ajax を呼び出す前にアンバインドし、ajax の成功コールバックでバインドし直します。

ただし、 .on()および.off()イベント ハンドラー アタッチメントを使用することをお勧めします。

.on VS .live VS .bindについては、このSO の回答を参照してください。

于 2013-10-04T09:22:30.660 に答える
1

動的な要素にイベントをバインドしている場合、 bodydocumentなどのページに既にある静的データを介して参照する必要があることを確認するポイントが1つあります。例 :

        $('body').bind('contextmenu','img', function(e) {
            return false;
            /*rollover*/
        $('body').on('mouseenter mouseout','.roll', function() {
            var original = $(this).attr('src');
            var replacement = $(this).data('hoverimg');
            $(this).attr('src', replacement).data('hoverimg', original);
        });
        });

今すぐ実行してみてください。それは間違いなくうまくいくでしょう。

于 2013-10-04T09:22:32.473 に答える