0

我在让这部分 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*/
}

我现在有点困惑。

4

2 回答 2

1

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

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

但是我更喜欢使用.on()和.off( )事件处理程序附件。

请参阅.on VS .live VS .bind的这个SO 答案

于 2013-10-04T09:22:30.660 回答
1

有一点要确保,如果您将事件绑定动态元素,那么您应该通过页面上已经存在的一些静态数据(如bodydocument )来引用它。例子 :

        $('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 回答