使用此 PHP,我添加了以下 HTML。我使用 PHP 是因为我从数据库中检索信息,但这与这个问题无关。<?php echo " <div id='user_bio_container'> <p id='user_bio'>My bio<i id='user_bio_edit' class='fas fa-edit'></i></p> </div> ";?>这是我的脚本。当用户点击 bio 段落时,它将段落内部存储在一个变量中,然后清空容器并添加一个表单。如果表单被取消,我想删除表单并添加我在该段落中的先前 HTML。问题是当我尝试这样做时,新段落不响应事件(鼠标悬停、单击...)。 $('#user_bio_edit').css("display", "none"); $(document).ready(function(){ $("#user_bio").on('mouseover', function(){ $('#user_bio_edit').css("display", "inline"); }); $("#user_bio").on('mouseleave', function(){ $('#user_bio_edit').css("display", "none"); }); $("#user_bio").on('click', function(){ var actualbio = $("#user_bio_container").html(); $('#user_bio_container').empty(); var user_bio_form = "<form id='change_user_bio'>" + "<span id='cancel_user_bio'>Cancel</span>" "</form>"; $("#user_bio_container").append(user_bio_form); //Button decision control $("#cancel_user_bio").on('click', function(){ $("#user_bio_container").empty(); $("#user_bio_container").append(actualbio); $('#user_bio_edit').css("display", "none"); }); }); });我试过使用hide()and show(),但是在两个取消的表单之后它停止工作并且我继续向未显示的 HTML 添加表单。我还尝试将按钮决策控制代码移到点击事件之外,但它也不起作用。
1 回答
缥缈止盈
TA贡献2041条经验 获得超4个赞
这是范围问题。actualbio
外面不可用$("#user_bio").on('click', function(){..}
改变这个
var actualbio = $("#user_bio_container").html();
到
actualbio = $("#user_bio_container").html();
并使用
var actualbio = '';
略低于
$(document).ready(function(){
这样变量actualbio
在里面的所有事件处理程序中都可用$(document).ready
关于事件不工作问题
您需要附加这样的事件,因为当您清除 html 时,#user_bio 连同所有附加事件一起从 dom 中删除。
$("#user_bio_container").on('mouseover', "#user_bio", function() {......})
- 1 回答
- 0 关注
- 123 浏览
添加回答
举报
0/150
提交
取消