我正在使用jQuery来触发一些嵌套脚本。我原本期望jQuery脚本应用于被调用的脚本,但是我得到了意想不到的行为 - 没有更新。这是为清晰起见的代码:
<div id="crnNav" class="centered">
<?foreach ($CRNs as $crn) {
echo '[<a href="pullCRN.php?crn='.$crn.'">'.$crn.']</a> ';
} unset($crn);?>
</div>
<div id="result">
<!-- class data porn goes here -->
</div>
<!-- controller logic -->
<script> // function updates content
$('a').click(function(){
event.preventDefault();
var href = $(this).attr('href');
$.get( href, function( data ) {
$( "#result" ).load(href);
});
});
</script>
这可以按预期工作。 DIV #result填充了pullCRN.php的内容,实际上因为我把我的选择器作为所有锚点,它适用于我不想要的东西。但是我有它用于测试目的,因为pullCRN.php加载的代码会生成更多链接。没有发生的是#result不会使用pullCRN.php中加载的链接内容进行更新,只会更新该DIV之外的链接。这是预期的行为吗?
答案 0 :(得分:0)
您忘记将事件作为参数
$('a').click(function(){//here and without parameter this wouldn't work
所以,请使用:
$('a').click(function(event){
event.preventDefault();
var href = $(this).attr('href');
$.get( href, function( data ) {
$( "#result" ).load(href);
});
});
答案 1 :(得分:0)
我的问题的解决方案是使用以下语法重写处理程序:
$( document ).on( events, selector, data, handler );
这将我的处理程序绑定到动态添加到页面的新元素。