Javascript 当用户在Angularjs中单击链接时,如何禁用多次
我在click='VewItems(id)'中使用ViewItems()函数调用Angularjs中控制器中的方法,但这似乎还不太好,因为当用户单击更多时间从模型加载的图像时,它将获得更多图像或元素,我将其添加到div中,与单击的数量相当 这是我的功能Javascript 当用户在Angularjs中单击链接时,如何禁用多次,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我在click='VewItems(id)'中使用ViewItems()函数调用Angularjs中控制器中的方法,但这似乎还不太好,因为当用户单击更多时间从模型加载的图像时,它将获得更多图像或元素,我将其添加到div中,与单击的数量相当 这是我的功能 $scope.ViewItems = function ($id) { $('.modal-title').html(''); $('#bookimg').html(''); // Fetch
$scope.ViewItems = function ($id) {
$('.modal-title').html('');
$('#bookimg').html('');
// Fetch an item from book list
if($id) {
id = $id;
$http({
method: 'GET',
url: url+id,
}).then(function successCallback(response) {
var http_code = response.data.s_respond;
$('<div id="loading"></div>').appendTo('body');
if (http_code === 200) {
SetErrors(http_code, 'OK');
var book_items = JSON.parse(response.data.data);
$('<h3>'+book_items.title+'</h3>').appendTo('.modal-title');
$('<img src=" '+book_items.image+' " width="100%" />').appendTo('#bookimg');
$('#myModal').modal({backdrop: 'static', keyboard: false});
} else {
SetErrors(http_code, 'warning');
}
}, function errorCallback(response) {
SetErrors(http_code, response.textStatus);
});
}
};
$scope.ViewItems=函数($id){
$('.modal title').html('');
$('#bookimg').html('');
//从书单中取一项
如果($id){
id=$id;
$http({
方法:“GET”,
url:url+id,
}).then(函数成功回调(响应){
var http_code=response.data.s_response;
$('')。附于('正文');
如果(http_代码===200){
设置错误(http_代码“OK”);
var book_items=JSON.parse(response.data.data);
$(''+图书项目.title+'')。附录('.modal title');
$('')。附录('#bookimg');
$('#myModal').modal({background:'static',keyboard:false});
}否则{
设置错误(http_代码“警告”);
}
},函数errorCallback(响应){
设置错误(http_代码、response.textStatus);
});
}
};
HTML
维护一个变量
isClicked
,并相应地处理回调
var isClicked = false;
$scope.ViewItems = function ($id) {
if (isClicked) {
return;
}
isClicked = !isClicked;
...
}
维护一个变量
isClicked
,并相应地处理回调
var isClicked = false;
$scope.ViewItems = function ($id) {
if (isClicked) {
return;
}
isClicked = !isClicked;
...
}
只需创建一个数组即可解决此问题
var loadedIds = [];
$scope.ViewItems = function ($id) {
var index = loadedIds.indexOf($id);
if(index == -1){
loadedIds.push($id);
-------
}
};
只需创建一个数组即可解决此问题
var loadedIds = [];
$scope.ViewItems = function ($id) {
var index = loadedIds.indexOf($id);
if(index == -1){
loadedIds.push($id);
-------
}
};
单击一个标志
isClicked
是不够的,因为可能有多个链接可供用户单击。如果用户单击任何一个链接,您的解决方案将禁用所有链接。如果有多个处理程序,您必须相应地更改代码。我想OP只有一个处理程序。一个标记isClicked
是不够的,因为可能有多个链接可供用户单击。如果用户单击任何一个链接,您的解决方案将禁用所有链接。如果有多个处理程序,您必须相应地更改代码。我想OP只有一个处理器。