在Ajax之后运行Jquery代码

时间:2013-10-04 09:14:50

标签: jquery ajax

我遇到一些问题,让我的jQuery脚本的这部分在Ajax内容切换后运行...

/*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*/
}

我现在有点困惑。

2 个答案:

答案 0 :(得分:1)

如果我理解正确,你只需要在ajax成功时绑定它。然后,您可以在jQuery中尝试bindingunbinding

在调用ajax之前取消绑定并在ajax的成功回调中将其绑定回来。

但我更愿意使用.on().off()事件处理程序附件。

请参阅此SO answer了解 .on VS .live VS .bind

答案 1 :(得分: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);
        });
        });

立即尝试运行它。它肯定会奏效。