javascript - 如何附加一些代码并使其与已加载的 js 一起工作?
问题描述
我要实现的一个简单示例:
$('.test-link').click(function(e) {
e.preventDefault();
alert($(this).attr('href'));
});
$('.test-form').submit(function(e) {
e.preventDefault();
$(this).append('<a href="testing" class="test-link">Click here</a>');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form class="test-form">
<input type="submit">
</form>
提交表单后,它成功创建了带有“test-link”类的链接,该链接具有准备好处理点击的功能。单击时,我需要触发现有功能,在此示例中,它应该提醒“测试”,但该链接作为常规链接工作。
解决方案
考虑使用 jQuery 的.on()
方法来确保您的事件逻辑绑定到将来添加到 DOM 的元素。
例如,您可以像这样更改代码:
$(function() {
$('.test-form').submit(function(e) {
e.preventDefault();
$(this).append('<a href="testing" class="test-link">Click here</a>');
});
$('body').on('click', '.test-link', function(e) {
e.preventDefault();
alert($(this).attr('href'));
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<form class="test-form">
<input type="submit">
</form>
这意味着您的click
处理程序将被调用用于当前存在的任何匹配元素,或者稍后添加(即在您的表单提交之后)。
有关详细信息,请参阅. on()
希望这可以帮助!
推荐阅读
- mysql - 如何在mysql中使用in运算符传递变量?
- tensorflow - 在 Tensorflow 对象检测 API 中绘制验证损失
- python - Python-在文本文件中加入列表项
- android - Android:录制视频 30 秒,30 秒后仅录制音频
- git - GitHub:合并后提交更改
- linear-programming - CPLEX、Gurobi 和 FICO Xpress 之间的性能差异的解释使用内点法(障碍)没有交叉?
- testing - 如何在 Jmeter 中获取字符串长度并减去用户定义的变量
- unity3d - 当我在 android mobile 上构建时,我的健康点未设置为正确的值
- java - 异常选择签名:无法验证签名
- python - 如何在python中仅给具有默认值的函数的第二个参数赋值