无法从ajax div调用javascript

时间:2013-10-03 19:01:48

标签: javascript php jquery ajax cakephp

我使用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=""上调用它。再次失败。

我做错了什么?

2 个答案:

答案 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);
}
});