У меня есть этот код:Как правильно назвать эту функцию в Ajax?
function changeEventStatusClass(object){
if ($(object).hasClass("fa-circle")) {
$(object).removeClass("fa-circle").addClass("fa-circle-o");
//alert("adevarat");
} else {
$(object).removeClass("fa-circle-o").addClass("fa-circle");
}
}
function changeEventStatus(eventId, status) {
console.log(eventId, status);
$.ajax({
type:'POST',
data: {
eventId: eventId,
status: status,
},
url: "<?php echo $this->serverUrl().str_replace('public','',$this->basePath()).'/user/ajaxupdateappointmentstatus'; ?>",
success: function (result) {
if (result.success) {
console.log(eventId);
changeEventStatusClass(eventId); //here is problem
}
}
});
}
$(".crad").on('click', function(){
var eventId = $(this).attr('data-id');
var completed = ($(this).hasClass("fa-circle-o")) ? true : false;
console.log(completed);
if (completed) {
changeEventStatus(eventId, 7);
} else {
changeEventStatus(eventId, 0);
}
})
<i class="fa fa-circle-o circle crad" data-id="241"></i>
<i class="fa fa-circle-o circle crad" data-id="242"></i>
<i class="fa fa-circle-o circle crad" data-id="243"></i>
<i class="fa fa-circle-o circle crad" data-id="244"></i>
У меня есть проблема, когда я пытаюсь вызвать функцию changeEventStatusClass
, потому что это не параметр ID (это data-id
);
Как сделать заказ, чтобы произвести эту функцию? В настоящее время сайт меняет класс на все кнопки, и мне просто нужен текущий
Помогите решить эту проблему?
Заранее благодарен!
Вы должны просто передать объект jq или ссылку узла DOM для функции, а не строку селектора. например, changeEventStatus (this, 7); '. Или вы можете связать соответствующий контекст: 'changeEventStatus.call (this, 7);' whith' function changeEventStatus (status) {...} 'и как опция ajax:' context: this, 'Тогда просто используйте' $ (this) ' –