开发者社区 问答 正文

toggle回调函数无效 回调报错

"$(".detail").live("click",function(){
                var index = $(this).attr("index");
                $(".details[rel='"+index+"']").toggle(function(){
                    $(".detail").html("收起详情");
                },function(){
                    $(".detail").html("查看详情");
                });
            });
toggle回调函数无效  求解答

展开
收起
huc_逆天 2020-05-27 21:24:24 406 分享 版权
阿里云 AI 助理回答

这段代码使用了jQuery的.live().toggle()方法,但需要注意的是,从jQuery 1.9版本开始,.live()方法已经被废弃,建议使用.on()方法来替代。至于.toggle()方法在 jQuery 1.8之后的行为也发生了改变,它不再接受动画函数作为参数,而仅仅用于切换元素的可见性。

根据你的需求,看起来是想在点击".detail"元素时,切换显示或隐藏与之关联的".details"元素,并且同时改变".detail"元素内的文本。这里是一个修改后的示例代码,使用了.on()方法并调整了.toggle()的用法:

$(document).on("click", ".detail", function() {
    var index = $(this).attr("index");
    var $details = $(".details[rel='" + index + "']");
    var detailText = $details.is(":visible") ? "收起详情" : "查看详情";
    
    // 切换details的显示状态
    $details.toggle();
    
    // 更新detail元素的文本
    $(this).html(detailText);
});

这段代码首先通过.on()方法为".detail"类绑定点击事件处理函数,这能够处理动态添加的元素。接着,根据.details元素的当前可见性来决定显示"收起详情"还是"查看详情",并相应地切换.details元素的显示状态。这样应该能解决你的问题。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答地址: