使用此 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 關注
- 151 瀏覽
添加回答
舉報
0/150
提交
取消