我使用ajax在我的页面中加载了一些内容。我想在点击某些锚点时运行JS函数。这些锚属于使用ajax加载的代码。 ajax请求和JS函数都位于jQuery(document).ready(function() {
内的单独JS文件中。
我在这个JS文件中有几十个函数,并且它们运行正常,但是这个特定函数是使用ajax检索的代码调用的唯一函数,并且它不起作用。我的代码:
html主文件:
<!-- code -->
<div id="ajaxContentGoesHere">
<!-- content inserted here by ajax function -->
<td><a href="#" id="aLancamentoEdit<?php echo $lancamento['Lancamento']['lan_itid']; ?>">Editar</a></td>
</div>
<script src="/js/myJS.js"></script>
</body>
/js/myJS.js文件:
jQuery(document).ready(function() {
/*some other functions here*/
$("[id^='aLancamentoEdit']").click(function(){
console.log(1);
}
});
我尝试将$("[id^='aLancamentoEdit']").click(function(){
放在html主文件中,在/js/myJS.js
调用后的标记中。没有工作。
还尝试更改选择器以匹配我的锚类(我为此声明了一个类)。也没有成功。最后还尝试在函数中添加一个名称,并在锚点内的onclick=""
上调用它。再次失败。
我做错了什么?
答案 0 :(得分:4)
由于以'aLancamentoEdit'开头的id的元素是由ajax动态添加的,因此需要将click
处理程序绑定到parent:
$('#ajaxContentGoesHere').on('click', "[id^='aLancamentoEdit']", function() {
console.log(1);
});
答案 1 :(得分:3)
将.on()
用于动态元素事件(在您的情况下为ajax内容)。尝试:
jQuery(document).ready(function() {
/*some other functions here*/
$("#ajaxContentGoesHere").on("click","[id^='aLancamentoEdit']",function(){
console.log(1);
}
});