jquery回调不工作

jquery回调不工作,jquery,Jquery,有人能告诉我这个jquery脚本的错误吗 $(document).ready(function() { $("a.book").click(function() { $(this).parent().next('div').slideToggle('slow', function(){ $(this).toggleClass('bookopen'); }); }); }); 我希望div切换,然后我希望元素$a.book

有人能告诉我这个jquery脚本的错误吗

$(document).ready(function() { 
    $("a.book").click(function() {
        $(this).parent().next('div').slideToggle('slow', function(){
            $(this).toggleClass('bookopen');
        });
    });
});
我希望div切换,然后我希望元素
$a.book
更改为
$a.bookopen
。但是当我在上面写代码时,切换不起作用。如果我删除回调函数
toggleClass
slideToggle
工作正常


有什么想法吗?感谢您的帮助。

我怀疑您不希望回调函数引用此。在该行上设置一个断点进行检查。

我怀疑对
this
的引用不是回调函数想要的。在该行上设置一个断点以进行检查。

您的
内部回调中的此
引用指向正在切换的
div
,而不是触发它的
a
。你可以关闭对它的引用

$(document).ready(function() { 
    $("a.book").click(function() {
        var $a = $(this);
        $(this).parent().next('div').slideToggle('slow', function(){
            $a.toggleClass.('bookopen');
        });
    });
});
或者您可以从div中的jQuery方法导航回它:

$(document).ready(function() { 
    $("a.book").click(function() {
        $a.parent().next('div').slideToggle('slow', function(){
            $(this).prev('whatever').find('a.book').toggleClass('bookopen');
        });
    });
});

请注意,这取决于元素结构。

您的
内部回调中的此
引用指向正在切换的
div
,而不是触发它的
a
。你可以关闭对它的引用

$(document).ready(function() { 
    $("a.book").click(function() {
        var $a = $(this);
        $(this).parent().next('div').slideToggle('slow', function(){
            $a.toggleClass.('bookopen');
        });
    });
});
或者您可以从div中的jQuery方法导航回它:

$(document).ready(function() { 
    $("a.book").click(function() {
        $a.parent().next('div').slideToggle('slow', function(){
            $(this).prev('whatever').find('a.book').toggleClass('bookopen');
        });
    });
});

请注意,这取决于元素结构。

除了harpo提到的更改之外,我认为这行代码:

$a.toggleClass.('bookopen');
应该是这样的:

$a.toggleClass('bookopen');

除了harpo提到的更改之外,我认为这行代码:

$a.toggleClass.('bookopen');
应该是这样的:

$a.toggleClass('bookopen');

你应该将此作为评论添加到他的帖子中。@Brad。在看到harpo的帖子(我们的帖子相隔仅1分钟)之前,我发布了答案,然后编辑了我的帖子以引用他的帖子。你应该将此作为评论添加到他的帖子中。@Brad。在我看到哈波的帖子(我们的帖子只相隔1分钟)之前,我发布了答案,然后编辑了我的帖子以引用他的帖子。