当前位置: 首页 > 面试题库 >

附加新元素后功能不起作用

孔甫
2023-03-14
问题内容

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

我为此链接创建了一个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函数时,一个按钮会回答以下输出:

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仅在运行时知道页面中的元素,因此jQuery无法识别添加到DOM中的新元素。为了避免使用事件委托,将事件从新添加的项目冒泡到jQuery在页面加载时在DOM中的某个点。许多人都将其document用作捕获冒泡事件的地方,但是并没有必要将DOM树放在那儿。理想情况下,您应该委派给页面加载时存在的最接近的父级。

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

这就是你现在拥有的。更改为-

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


 类似资料:
  • 我目前正忙于语音识别,我希望语音识别器能永远不间断地听我说话。该应用程序的目的是,它将等待特定关键字的语音:当用户说出该关键字时,服务将准备好接收用户语音命令。经过研究,我发现我们可以手动计算识别器收听的时间。通过这些常量: 顺便说一下,默认识别器服务侦听大约10秒。(谷歌api) http://java.llp2.dcc.ufmg.br/apiminer/docs/reference/andro

  • 根据你使用 Jekyll 的不同方式,Jekyll 允许你安装一些可选的附加功能。 数学支持 使用 Kramdown 时可以选择使用由 MathJax 提供的 LaTeX 格式到 PNG 格式的数学区块渲染器。具体细节可查阅 Kramdown 文档中的 math blocks (数学区块) 以及 math support (数学支持) 部分。 使用 MathJax 需要你设置引用相关的 JavaS

  • 问题内容: 在> iOS 5中可以使用吗? 我认为应该,但到目前为止还没有。 问题答案: 您可以使用单独的元素来解决此问题,并且确实有效! HTML: CSS:

  • 下面是一个函数,它获取一个长字符串,并返回一个按段落分割的字符串。 问题是k是空的。为什么函数不起作用?

  • 我对自动化测试完全陌生。在参考了一些教程之后,我创建了一个自动测试用例。我尝试自动化的测试用例是在单击表的一个标题后检查排序是否正常工作。 我的自动测试用例失败,出现以下异常: 以下是代码: 例外情况来自此行: 有人能告诉我isse的原因以及如何解决吗? 非常感谢您的帮助

  • 问题内容: 我加载表单并通过AJAX从PHP文件中动态填充选择。在实现动态的AJAX填充选择之前,我的change函数起作用(当用户选择“ other”时,它仅显示另一个输入)。现在,更改功能不起作用。 我知道ready函数正在触发,因为jStepper函数正在运行。我已经在ready函数的内部和外部使用change函数进行了尝试。我感觉在AJAX获取完成之前加载了change函数,但这真的重要吗