簡體   English   中英

從另一個文件調用Javascript函數“無法讀取未定義的屬性”

[英]Calling Javascript function from another file 'Cannot read property of undefined'

我從這里的Word.js文檔中舉了一個例子,但是我無法在我的項目中使用類似的代碼。 我試圖從另一個在一個js文件中調用方法。 我的方法編寫如下。

var Toast = (function () {

    var ToastDiv = "divToast",
        Success = "success_notif",
        Notice = "",
        Output = "";

    function showSuccessToast(title, message) {

        if (document.getElementById(Success) == null) {
            createToast();
        }

        document.getElementById(Notice).innerText = title;
        document.getElementById(Output).innerText = message;

        $("#" + Success).animate({ left: '12%', }, 500);
        setTimeout(function () {
            close();
        }, 2000);

    }

    function close() {

        e.preventDefault();
        var parent = $(this).parent('.toast');
        parent.animate({ left: '110%', }, 500);

    }

})();

Home.js ,在同一目錄的Home.js中,我希望調用showSuccessToast方法,如下所示:

Toast.showSuccessToast("","");

Home.html文件中,我已將javascript鏈接如下:

<script type="text/javascript" src="toast.js"></script>
<script type="text/javascript" src="Login.js"></script>

但是,我仍然收到錯誤消息: Cannot read property 'showSuccessToast' of undefined 這是我第一次使用這種語法來定義Toast方法,因此我不確定在哪里出錯。 如何調用showSuccessToast方法?

這是因為您的Toast IIFE沒有返回任何內容。 它應該返回該函數。 在Toast IIFE中添加以下代碼,它將起作用。

return {
    showSuccessToast: showSuccessToast,
    close: close
};

調用Toast時,Toast不會公開任何函數,因為不會返回任何函數。 所以吐司是不確定的。 結果,您得到此錯誤。

嘗試在Toast函數中添加return {showSuccessToast:showSuccessToast}

暫無
暫無

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

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