对你们来说这似乎很容易,但我在jquery和ajax中有点新鲜。我到处寻找,几个小时都无法解决问题。我的问题如下;
我有一个带有类名的html链接,请按照
<a href="#" class="follow"> {if $is_following == 0} follow {else} following {/if} </a>
if-else语句只是一个聪明的模板引擎用法。这很简单。如果用户关注其他用户,则显示“关注”值,否则显示“关注”值。
我的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);
}
});
}
});
编辑:根据答案,我需要解释功能;
我不想使用切换事件。因为切换只是捕获第一次和第二次点击。我需要一个if语句来控制链接值是跟随还是跟随。
此外,如果用户关注,则显示以下值但鼠标悬停事件不起作用。你能解释一下为什么吗?我无法理解这里发生了什么。
任何建议或帮助将不胜感激。
P.S:如果我删除toggle事件并控制ajax调用中的链接值,它根本不起作用。
此外,我正在考虑为链接分配不同的链接ID并单独处理它们。但是,我认为这是错误的方式。
答案 0 :(得分:1)
在某些地方,你有以下形式的陈述:
$(this).html();
OR
$(this).html('sometext');
如果您将这些更改为:
$(this).text();
$(this).text('newtext');
这可以解决您的问题吗?
注意:'newtext'将是您希望在该标记内保存的任何文本。
编辑注2:我知道这不是你的所有问题,但也许你可以更清楚地解释你想要的功能。
请参阅此小提琴以确定您是否正在寻找:http://jsfiddle.net/MarkSchultheiss/Swp7x/
注意:它使用jsonp和跨域,只使用回显的返回值,但您可以根据需要使ajax部分正常工作。我在一个字段中直观地显示当前状态的值,以帮助您理解其工作原理。