如何在加载Modal时调用函数?

时间:2013-04-29 11:04:50

标签: jquery

我有以下功能。我想在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

3 个答案:

答案 0 :(得分:3)

使用load事件来执行任务。

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

       alert("hello!")
    })
});
</script>

答案 1 :(得分: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()

答案 2 :(得分:0)

在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.');
   });