如何在单击链接时在ajax中使用回调函数

时间:2016-03-17 18:58:15

标签: javascript php jquery ajax jquery-callback

我在点击链接时使用jquery ajax但是我想从该链接传递一个usedefined函数名,这样当我从ajax获得结果时它应该回调到我已经传递的函数。我正在使用这个

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script type="text/javascript">
var call_me = function(data){
alert(data);
};
var  getmsg = function (val,callback) {
// alert(val+call_me);
$.ajax({
url : "send.php",
type : "post",
data : {value:val},
success : callback
})
}
</script>
<a href="#" onclick="getmsg($(this).html(),'call_me');">wewewe</a>

3 个答案:

答案 0 :(得分:1)

"call_me"在问题js处作为字符串传递,尝试将函数名称传递给getmsg

function call_me(data){alert(data)} 

onclick="getmsg($(this).html(), call_me);"

可选地,

$("a[href=#]").click(function() {
  getmsg(this.innerHTML, call_me)
})

答案 1 :(得分:0)

函数只是javascript中的另一个对象,所以不是传递函数名,而是传递函数本身:

<a href="#" onclick="getmsg($(this).html(), call_me);">wewewe</a>

var getmsg = function (val,callback) {
    $.ajax({
        url : "send.php",
        type : "post",
        data : {value:val},
        success : callback
    });
}

答案 2 :(得分:0)

我发现使用jQuery在html中混合内联javascript是一个非常糟糕的主意。您可以通过正确使用库并保持html完整性来实现相同的行为

<a href="#" class="the-link-element">wewewe</a>

$("a.the-link-element").on("click", function(e){
    // or .html()/.innerHtml() is not clear what you want
    getmsg($(e.target).text(), call_me);
});

var call_me = function(data){
    alert(data);
};

var  getmsg = function (val,callback) {
// alert(val+call_me);
        $.ajax({
        url : "send.php",
        type : "post",
        data : {value:val},
        success : callback
    })
}