0
<script type="text/javascript">  
    $JTj(document).ready(function() {   
        var map = {"rows": 4, "cols" : 4};
        alert(map.rows);
        formUpdate(map);    
    });

    function formUpdate(map) {
       if (map != undefined) {
           $JTj('#mapContainer').selectionmap(map);
       }
    }
   formUpdate(map); 
</script>

//シンプルなライブラリ

<script type="text/javascript">
(function ($JTj) {
    $JTj.fn.selectionmap = function (options) {
        alert(options.rows);
    };
})(jQuery);
</script>

エラーが発生しました、

ReferenceError:$JTj定義されていません$JTj(document).ready(function() {

何を変更すればよいか教えてください。

4

1 に答える 1

2

現在のコードで$JTjは、自己呼び出し無名関数のスコープ内でのみアクセスできます。

最初のコードスニペットを別の(または同じ)無名関数でラップする必要があります。

<script type="text/javascript">  
    (function($JTj) {
        $JTj(document).ready(function() {   
            var map = {"rows": 4, "cols" : 4};
            alert(map.rows);
            formUpdate(map);    
        });

        function formUpdate(map) {
           if (map != undefined) {
               $JTj('#mapContainer').selectionmap(map);
           }
        }
        formUpdate(map); 
    })(jQuery);
</script>

ちなみに、注意してください。ハンドラーformUpdate()の外部に呼び出しを発行しています。readyその呼び出しが実行されるとき、DOMはまだ準備ができていない可能性があります。

于 2013-03-04T09:45:16.047 に答える