2014-02-18 5 views
0

У меня есть функция JQuery, определенный во внешнем файле JS: myJquery.jsВызов функции JQuery из XHTML во внешних JS файл

(function($) { 
     $.fn.test = function (options) { 
      //Extended default options 
      var opts = $.extend({ 
        chars: 0 
}, options); 
...doSomething... 
})(jQuery); 

Inclding этот файл в XHTML, как:

<script type="text/javascript" src="_/js/myJquery.js"/> 

и пытается получить доступ как:

$(document).ready(function() { 
     $("input.testClass").each(function() { 
          $(this).test({ 
           chars:10 
         }); 
        }); 
}); 

Но получение js error с использованием функции 'test' не найдено.

ответ

0

Функция test ограничена внешним файловым пространством, а не глобальной средой. Если вы уверены, что jQuery имеет команду $, добавьте свою функцию без обертки function($).

EDIT: в то время как выше, может все еще быть актуальны для других ... это делает работу штрафа (по крайней мере, просто показывая предупреждение) с } на месте:

внешний файл с <script type="text/javascript" src="testing.js"></script> включил

(function($) { 
    $.fn.test = function (options) { 
     //Extended default options 
     var opts = $.extend({chars: 0}, options); 
     alert('boo: '+opts.chars); 
    } 
})(jQuery); 

в странице:

<script type="text/javascript"> 
$(document).ready(function() { 
     $("h1").each(function() { 
       $(this).test({ 
        chars:10 
      }); 
     }); 
}); 
</script> 
+0

я извлекал функцию ($) от myJquery.js (удалена первая и последняя строка из выше myJquery.js сниппетов), но стиль тот же вопрос. Я правильно понял предложение! –

+0

Ха хорошо, даже не заметил, но вам не хватает фигурной скобки, чтобы закрыть объявление функции. –

Смежные вопросы