jquery回调不工作
有人能告诉我这个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
$(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分钟)之前,我发布了答案,然后编辑了我的帖子以引用他的帖子。