簡體   English   中英

調用用戶定義的jQuery函數

[英]Calling a user defined jQuery function

我是一名JavaScript新手,並且嘗試通過這種方式調用jQuery函數:

function getProducts(){
      $.post("products.php",
      {
        customer_ID:$("#customers").val()
      },
      function(data,status){
        return status && data !== "";
      });
};

$(document).ready(function(){
    $("#customers").change(function(){
        if(getProducts){
            alert("trovato");

            $("#products").prop("disabled", false);
            $("#products").html(data);
        }else{
            alert("non trovato");

            $("#products").empty();
            $("#products").prop("disabled", true);
        }
    });
});

盡管函數getProducts正常工作,但ready中的if-else語句不起作用。 我想問題出在函數調用中。 我有什么錯嗎? 謝謝。

您需要使用回調包裝響應,如下所示:

function getProducts(callback){
      $.post("products.php",
      {
        customer_ID:$("#customers").val()
      },
      function(data,status){
         callback(status && data !== "");
      });
};

$(document).ready(function(){
    $("#customers").change(function(){
        getProducts(function(status) {
           if(status){
             alert("trovato");

             $("#products").prop("disabled", false);
             $("#products").html(data);
           }else{
             alert("non trovato");

             $("#products").empty();
             $("#products").prop("disabled", true);
           }
        });

    });
});

由於函數內部的異步調用,我不太確定這是否能正常工作。

明顯的錯誤是,您必須調用類似的函數: function() 您只是忘記了括號。

如果在該修復程序后仍無法正常工作,則必須對程序進行重新設計以在具有異步調用的地方使用回調。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM