附加新元素后函数不起作用

Function doesn't work after appending new element

本文关键字:函数 不起作用 元素 新元素      更新时间:2023-09-26

我对jQuery函数创建的新元素的"单击"操作有问题,它不起作用。

我为此链接创建了一个JSFiddle(JSFiddle

),但它不能完美地工作,因为我无法在JSFiddle中调用Ajax请求。

我有两个按钮,

<input type="button" onclick="invia('SIC-034031','', 's');" value="AGGIUNGI" style="height: 20px; width: 110px; background-color: #A5EFC5 ; color: #000000; font-family: Arial,Helvetica,sans-serif; font-size: 12px; background-repeat: no-repeat; background-position: left center;" id="iscriviSIC-034031" class="pulsanteIscrizioni" name="xaggiorna"/>&nbsp;
<input type="button" onclick="invia('SIC-034031','R', 's');" value="RISERVA" style="height: 20px; width: 110px; background-color: #F00000; color: #FFFFFF; font-family: Arial,Helvetica,sans-serif; font-size: 12px; background-repeat: no-repeat; background-position: left center;" id="iscriviRSIC-034031" class="pulsanteIscrizioni" name="xaggiorna"/>

第一次调用 ajax 函数时,按钮 1 会回答以下输出:

OK;I;SIC-034031

按钮二仅用于擦除。按钮一创建。

<input id="iscriviSIC-034031" class="pulsanteIscrizioni" type="button" name="xaggiorna" style="height: 20px; width: 110px; background-color: #03F; color: #FFF; font-family: Arial,Helvetica,sans-serif; font-size: 12px;" value="TOGLI" onclick="invia('SIC-034031','');">

当我单击这个新按钮时,ajax 函数返回这个,

OK;C;SIC-034031;;

按钮一消失,按钮二回来。现在问题出在哪里,如果我单击第一个按钮,一切正常。如果我单击第二个按钮,它不起作用。

你能试着帮我找到问题吗?

谢谢;)

jQuery 只知道页面运行时的元素,因此添加到 DOM 中的新元素不会被 jQuery 识别。为了解决这个问题,使用事件委派,将事件从新添加的项目冒泡到DOM中的某个点,当jQuery在页面加载时运行时。许多人使用document作为捕捉气泡事件的地方,但没有必要在 DOM 树上走那么高。理想情况下,您应该委托给页面加载时存在的最近的父级。

$(".pulsanteIscrizioni").on("click", function()

是你现在拥有的。将其更改为 -

$(document).on("click", '.pulsanteIscrizioni',function()