Javascript 在div和textfield之间切换时触发事件

Javascript 在div和textfield之间切换时触发事件,javascript,jquery,html,css,Javascript,Jquery,Html,Css,好的,我正在用Laravel构建一个应用程序,但我的问题是jQuery。我正在为一些帖子创建一个评论部分。添加注释效果很好。在每一篇文章下面,都会列出针对特定文章的所有评论。如果评论是由您做出的,则会显示编辑按钮。如果按“编辑”按钮,将发生以下情况: 包含注释的p标记被替换为textarea(保持相同的内容/文本) 编辑按钮将文本更改为“保存”(而不是“编辑”) 该按钮还会更改某些类,从而更改样式 该按钮获得一个“保存模式”类 我试图使按钮具有保存模式类时,会触发一个事件,从而更新数据库中的

好的,我正在用Laravel构建一个应用程序,但我的问题是jQuery。我正在为一些帖子创建一个评论部分。添加注释效果很好。在每一篇文章下面,都会列出针对特定文章的所有评论。如果评论是由您做出的,则会显示编辑按钮。如果按“编辑”按钮,将发生以下情况:

  • 包含注释的p标记被替换为textarea(保持相同的内容/文本)
  • 编辑按钮将文本更改为“保存”(而不是“编辑”)
  • 该按钮还会更改某些类,从而更改样式
  • 该按钮获得一个“保存模式”类
我试图使按钮具有保存模式类时,会触发一个事件,从而更新数据库中的注释。 现在,几乎所有的部分都可以单独工作,但按下按钮时不会触发Ajax调用。我就是不明白为什么。值得一提的是,Ajax调用确实有效。但是应该触发它的if语句没有

我的逻辑一定有问题

我包含了一个片段,我猜editComment函数中有问题。我删除了刀片的语法、样式和周围的标记。但您可以在这个片段中看到相同的问题

我真的很感激能得到任何帮助来说明我自己的愚蠢。 多谢各位

$(“#编辑保存btn”)。在('click',函数(e){
e、 预防默认值();
编辑评论($(本));
});
函数editComment(btn){
常量id=btn.attr('value');
const comment=btn.closest('.col-md-3').prev().find('.comment text');
const commentHTML=$.trim(comment.text());
if(btn.hasClass('save-mode')){
log(“这需要被触发”);
//updateComment(id,commentHTML);
返回;
}
btn.toggleClass(“保存模式”);
常量可编辑=$('').css({'width':'100%});
可编辑的.val(HTML);
注释.替换为(可编辑);
可编辑。focus();
btn.removeClass('btn-primary').addClass('btn-success').html('Lagre');
可编辑。模糊(可编辑文本模糊);
}
函数editableTextBlured(){
$(“#编辑保存btn”).removeClass('btn-success save mode').addClass('btn-primary').html('Rediger');
var text=$(this.val();
可视文本=$(“

”); html(文本); $(this).replacetwith(可视文本); $(可视文本)。单击(编辑评论); }


评论

编辑
单击该按钮将触发textarea的模糊事件

在函数
editabletextbulder
中,您删除了类
save mode
,因此
btn.hasClass('save-mode')
返回
false
,无法触发save

是这样的:

模糊->删除类名保存模式->btn.hasClass('save-mode')->false,无法触发保存


希望它能对您有所帮助:)

试试$(文档)。在(“单击”,“编辑保存bt”上,使用函数(e)而不是$(“编辑保存btn”)。在('click',函数(e){我希望这会有所不同,但我没有。