Как использовать функцию обратного вызова в AJAX при нажатии на ссылку

Я использую jquery ajax при нажатии на ссылку, но я хочу передать определенное имя функции из этой ссылки, чтобы при получении результатов от 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>

0

Решение

"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

Другие решения

Функция — это просто еще один объект в 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
});
}
0

Я считаю смешивание встроенного JavaScript в HTML с JQuery очень плохой идеей. Вы можете добиться того же поведения, правильно используя библиотеку и сохраняя ваш 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
})
}
0
По вопросам рекламы [email protected]