[英]Disable javascript function on successful ajax request
具體來說,我想禁止某個函數在成功的ajax請求上執行。 我不知道這是否可能或是否有任何解決方法。 看看我做什么:
<script>
$(document).ready(function() {
function load(){
...
...
}
});
$.ajax({
...
success: function(option){
disable load function // I want this functionality somehow
}
});
</script>
有人可以幫忙嗎? 我需要這樣做,因為加載功能是一種滾動功能,可以在滾動到結束時以及在ajax請求中加載產品,而另一個文件也使用相同的功能,因此我需要禁用此功能。 任何幫助將不勝感激。
編輯
我希望此功能在首次頁面加載時起作用,但是在成功執行ajax請求的情況下,我希望此功能停止。 我將整個代碼提供給您,以使您有一個清晰的主意。
<script>
$(document).ready(function() {
var track_load = 0;
var loading = false;
var total_groups = <?php echo $total_groups; ?>;
var cat_id= <?php echo $cat_id; ?>;
$('.autoload').load("xyz.php", {'group_no':track_load, 'cat_id':cat_id}, function() {track_load++;});
$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() == $(document).height())
{
if(track_load <= total_groups && loading==false)
{
loading = true; //prevent further ajax loading
$('.animation_image').show();
$.post('xyz.php',{'group_no': track_load, 'cat_id':cat_id}, function(data){
$(".autoload").append(data);
$('.animation_image').hide();
track_load++;
loading = false;
}).fail(function(xhr, ajaxOptions, thrownError) {
$('.animation_image').hide();
loading = false;
});
}
}
});
});
</script>
<script>
$(document).ready(function(){
$('#subcat').change(function(){
var val=$(this).val();
$(this).value= val;
$('#furcat').show();
if(val=='A'){
$('#furcat').html("<option selected='true' disabled='disabled'>Choose Further Category</option><option>B</option><option>C</option>");
var sub_cat=41;
}
$('.autoload').empty();
$('.animation_image').show();
$.ajax({
type: "POST",
url: "abc.php",
data: {sub_cat:sub_cat},
success: function(option){
$('.autoload').replaceWith(option);
$('.animation_image').hide();
}
});
});
});
</script>
由於我需要在即將到來的數據中使用相同的滾動功能,因此我涉及到另一個php文件,該文件使用與此相同的代碼&刪除雙ajax請求,因此我需要禁用此功能。
您可以簡單地添加flag變量的邏輯。 這將確保您的加載方法在ajax成功后不會執行。
<script>
$(document).ready(function() {
var flag=false;
function load(){
if(!flag){
...
...
}
}
});
$.ajax({
...
success: function(option){
flag=true;
}
});
</script>
希望這對您有幫助
您可以創建標志,可以在“文檔就緒”上將其設置為“ true”,然后在成功進行ajax調用后將其設置為“ false”。
<script>
var flag=true;
$(document).ready(function() {
flag = true;
function load(){
if(flag){
...
...
}
}
});
$.ajax({
...
success: function(option){
flag=false;
}
});
</script>
您不需要任何if語句和其他變量。
看下面的代碼:
var load = function () {
...
};
$( document ).ready(function() {
$.ajax({
...
success: function () {
//"delete" the `load` function
load = '';
}
});
});
load
函數存儲在變量中,當ajax請求成功時,該變量將被清除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.