4

我有下面的功能。我想在 myModal 完成加载后调用该函数。这就是我到目前为止所拥有的。

(function ($) {


    $.ajaxSetup({"error":function(XMLHttpRequest,textStatus, errorThrown) {
          alert(textStatus);
          alert(errorThrown);
          alert(XMLHttpRequest.responseText);
      }});

    function get_fun() {

         $.getJSON('/sms/fetch/', function(json) {
            alert('json: ' + json + ' ...');
        });


    };


})(jQuery, window, document);

在页面上:我现在如何调用我的函数?

<script src="/js/smart.js"></script>

<script>
$(document).ready(function() {
    $('#myModal').on('shown', function() {


      get_fun()
    })
});
</script>

我收到错误:ReferenceError: get_fun is not defined

4

3 回答 3

10

在 W3 学校找到这个并为我工作。试试看。https://www.w3schools.com/bootstrap/tryit.asp?filename=trybs_ref_js_modal_event_shown&stacked=h

    $("#myModal").on('shown.bs.modal', function () {
        alert('The modal is fully shown.');
   });
于 2018-06-09T22:58:57.707 回答
5

使用加载事件来执行任务。

<script>
$(document).ready(function() {
    $('#myModal').on('load', function() {

       alert("hello!")
    })
});
</script>
于 2013-04-29T11:17:27.990 回答
2

您不能调用get_fun,因为它是另一个匿名函数中的私有闭包方法。一种可能的解决方案是将其分配给全局对象并将其公开,如下所示

尝试

var utils = {};
(function ($) {
    $.ajaxSetup({"error":function(XMLHttpRequest,textStatus, errorThrown) {
        alert(textStatus);
        alert(errorThrown);
        alert(XMLHttpRequest.responseText);
    }});

    utils.get_fun =    function get_fun() {

        $.getJSON('/sms/fetch/', function(json) {
            alert('json: ' + json + ' ...');
        });       
    };
})(jQuery, window, document);

然后使用

utils.get_fun()
于 2013-04-29T11:26:54.457 回答