Javascript 我的职能';s单击两次链接/按钮时,单击仅会触发
我正在尝试使用JavaScript/jQuery通过instagram API获取instagram关注者数量 有多个输入字段,每个字段都有一个on按钮来获取追随者数量。我希望每个输入字段都与单击的按钮有关 下面是返回跟随者计数的代码,我使用click函数绑定了该计数,但由于某些原因,“click-even”仅在我第二次单击锚/链接时触发Javascript 我的职能';s单击两次链接/按钮时,单击仅会触发,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在尝试使用JavaScript/jQuery通过instagram API获取instagram关注者数量 有多个输入字段,每个字段都有一个on按钮来获取追随者数量。我希望每个输入字段都与单击的按钮有关 下面是返回跟随者计数的代码,我使用click函数绑定了该计数,但由于某些原因,“click-even”仅在我第二次单击锚/链接时触发 function login_callback() { jQuery('.btn-instagram').click(function (e) {
function login_callback() {
jQuery('.btn-instagram').click(function (e) {
e.preventDefault();
var $t = jQuery(this);
var $prevFolw = jQuery(this).prev('instaFollowers').val();
jQuery.ajax({
url: 'https://api.instagram.com/v1/users/self',
dataType: 'jsonp',
type: 'GET',
data: {
access_token: accessToken
},
success: function (data) {
var follows = data['data']['counts']['followed_by'];
var link = data['data']['username'];
alert($prevFolw);
},
error: function (data) {
console.log(data);
}
});
});
}
它应该在第一次单击时显示警报。在第一次单击之前,您的按钮没有
单击事件,而在第一次单击之后,它有事件,这就是为什么它在第二次单击中工作。将。单击()
放在函数外部,并将您的登录\u回调()
放在成功
或错误
函数中
function login_callback(data) {
if (data == 'error') {
alert('Login error!');
}
else {
alert(data); // $prevFolw
}
}
jQuery('.btn-instagram').click(function(e) {
e.preventDefault();
var $t = jQuery(this);
var $prevFolw = jQuery(this).prev('instaFollowers').val();
jQuery.ajax({
url: 'https://api.instagram.com/v1/users/self',
dataType: 'jsonp',
type: 'GET',
data: {
access_token: accessToken
},
success: function(data) {
var follows = data['data']['counts']['followed_by'];
var link = data['data']['username'];
//alert($prevFolw);
login_callback($prevFolw); // <-- the callback
},
error: function(data) {
console.log(data);
login_callback('error'); // <-- the callback
}
});
});
函数登录\u回调(数据){
如果(数据=='错误'){
警报('登录错误!');
}
否则{
警报(数据);//$prevFolw
}
}
jQuery('.btn instagram')。单击(函数(e){
e、 预防默认值();
var$t=jQuery(本);
var$prevFolw=jQuery(this.prev('instaFollowers').val();
jQuery.ajax({
网址:'https://api.instagram.com/v1/users/self',
数据类型:“jsonp”,
键入:“GET”,
数据:{
访问令牌:访问令牌
},
成功:功能(数据){
var follows=data['data']['counts']['u后跟'];
var link=data['data']['username'];
//警报($prevFolw);
login_callback($prevFolw);//通过将两个函数绑定到一个函数中,我自己解决了这个问题
jQuery(document).ready(function(){
jQuery(".btn-instagram").click(function () {
$th = jQuery(this);
authenticateInstagram(
'YOUR_INSTAGRAM_ID', //instagram client ID
'YOUR_URL', //instagram redirect URI
function (){ jQuery.ajax({
url: 'https://api.instagram.com/v1/users/self',
dataType: 'jsonp',
type: 'GET',
data: {
access_token: accessToken
},
success: function(data) {
var follows = data['data']['counts']['followed_by'];
var link = data['data']['username'];
$th.parent('.instagram-row').find('.instaFollowers').val(follows);
$th.parent('.instagram-row').find('.instaURL').val(link);
console.log($th.parent('.instagram-row').find('.instaFollowers').val());
console.log($th.parent('.instagram-row').find('.instaURL').val(link));
},
error: function(data) {
console.log(data);
}
})
} );
return true;
})
});
谢谢大家的帮助。为什么不简单地重新启动事件处理程序?为什么将其包装在函数中?您正在调用login\u callback(),然后调用两次正确的事件??哦,还有什么解决方案吗?将处理程序移到login\u callback()之外
function调用函数的位置或函数的定义位置?谢谢@ewlink,但它返回“undefined”,而我想显示success函数中“data”变量的值。undefined
哪一行?要显示数据,在success函数中只需更改login\u callback($prevFolw)
tologin\u callback(data)
无论我在函数中传递什么,它都会在按钮中返回“undefined”您调用的login\u callback()如果你看到我的帖子和评论,我已经提到登录函数首先调用Instagram api,然后“login_callback()”被称为callback。