0

我想将一个值从已由另一个 ajax 加载的 Anchor 标记传递给 ajax。我有一个名为 profilesearch.php 的页面。我在标题中有这段代码

function loadData(page){
$.ajax({
type: "POST",
url: "load_data.php",
data: 'page='+page+'&user='+<?php echo json_encode($_GET['uid']); ?>,
success: function(msg){
    $("#container").ajaxComplete(function(event, request, settings){
        loading_hide();
        $("#container").html(msg);
        });
    }
});
}

这段代码会从 load_data.php 文件返回一个设置的 div 到 #container 文件有分页。每个 div 都会有一个 Anchor 标签,Anchor 标签的 ID 是#myAnchor。当用户单击该#myAnchor 时,它应该再次对文件updateAjax.php 执行另一个ajax。

<script type="text/javascript">
$(document).ready(function(){
    $("#myAnchor").click(function(){
        alert("hi");
        $.ajax({
        url: "updateAjax.php",
        data: 'varName=hi',
        success: function(upmsg){
            $("#myAnchor").html(upmsg);
        }
        });
    });
});
</script>

当我在同一页面中有一个锚标记时,即 profilesearch.php 这工作正常.. 但是当我从另一个 ajax 请求加载一个锚时它不起作用。

4

2 回答 2

1

在涉及动态元素的情况下,您需要使用事件委托。您可以使用.on()来实现这一点。

$(document).ready(function(){
    $("#container").on('click', '#myAnchor', function(){
        alert("hi");
        $.ajax({
        url: "updateAjax.php",
        data: 'varName=hi',
        success: function(upmsg){
            $("#myAnchor").html(upmsg);
        }
        });
    });
});
于 2013-04-04T15:40:35.650 回答
0

尝试像这样调用 click 函数:

$(document).on('click', '#myAnchor', function(){ 
    //code here
)};
于 2013-04-04T15:40:56.373 回答