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 が定義されていません

4

3 に答える 3

2

get_fun別の匿名関数内のプライベート クロージャ メソッドであるため、呼び出すことはできません。考えられる解決策の 1 つは、それをグローバル オブジェクトに割り当てて、以下のように公開することです。

試す

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 に答える