Это может показаться вам очень простым, ребята, но я немного новичок в jquery и ajax. Я искал везде и не мог решить проблему часами. Моя проблема заключается в следующем;
У меня есть html-ссылка с именем класса, следующим за
<a href="#" class="follow"> {if $is_following == 0} follow {else} following {/if} </a>
оператор if-else - это просто умное использование шаблонизатора. это очень просто если пользователь следует за другим пользователем, тогда покажите значение 'follow', иначе покажите значение 'follow'.
Мое jquery следующее;
var $values;
$('.follow').mouseover(
function()
{
$values = $(this).html();
if($values == 'following')
{
$(this).html('unfollow');
}
}
);
$('.follow').mouseout(
function()
{
$(this).html($values);
}
);
$('.follow').toggle(
function(){
$(this).html('following');
$values = "following";
},
function(){
$(this).html('follow');
$values = "follow";
}
);
//follow ajax call
$('.follow').click(function(){
var $op = $(this).html();
var $other_profile_id = $('#other_profile_id').text();
if($op == 'follow')
{
$.ajax({
type : 'POST',
url : 'ajax_service.php',
dataType : 'json',
data: {
op : $op,
other_profile_id : $other_profile_id
},
success : function(data){
},
error:function (error){
console.error(error.responseText);
}
});
}
else if($op == 'unfollow')
{
$.ajax({
type : 'POST',
url : 'ajax_service.php',
dataType : 'json',
data: {
op : $op,
other_profile_id : $('#other_profile_id').text()
},
success : function(data){
},
error:function (error){
console.error(error.responseText);
}
});
}
});
РЕДАКТИРОВАТЬ: на основе ответа мне нужно объяснить функциональность;
- Если пользователь не подписан, ссылка показывает значение «подписаться».
- Если пользователь уже подписался, показывается значение 'follow', оно должно вызывать событие mouseover, когда мышь находится над ссылкой.
- Если указатель мыши находится над ссылкой и значение «следует», то значение ссылки должно быть «отписаться».
- Если на ссылке отсутствует мышь, она должна снова показать значение «после».
- Если пользователь не подписан, в ссылке отображается значение «подписаться».
Я не хочу использовать событие переключения. Потому что переключатель просто ловит первый и второй щелчок. Мне нужно утверждение if, которое контролирует, является ли значение ссылки следующим или следующим.
Кроме того, если пользователь следует, он показывает следующее значение, но событие mouseover не работает. Не могли бы вы объяснить, почему? Я не мог понять, что здесь происходит.
Любые предложения или помощь будут оценены.
P.S: Если я удаляю событие переключения и контролирую значение ссылки внутри вызовов ajax, это вообще не работает.
Более того, я думаю назначить ссылки различным идентификаторам и обрабатывать их отдельно. Но я думаю, что это неправильный путь.