Используйте внешний JavaScript, поэтому он кэшируется в память браузера, поэтому, когда ваш клиент посещает его, он будет загружаться быстрее. Тогда посмотрите на это:
// wrapper is same as $(document).ready() with no-conflict
jQuery(function($){
// should be defined once everything has loaded
function myx(){
// never use alert except to test
alert('OMG!');
}
// passing a function name like a var is the same as Anonymous function
$('#mytest').click(myx);
});
// Ignoring outer wrapper to save indenting - indent everything further
Важно то, что myx
должна быть определена после загрузки все.
Вам не обязательно, но лучше использовать внешний JavaScript и поместить теги <script>
в <head>
, установив как <script type='text/javascript' src='yourUrl.js'></script>
, так и совместимый с W3C. Кроме того, технологически document.body
может быть недоступен для некоторых старых браузеров, если теги <script>
определены в <body>
, так как HTML должен быть определен до того, как JavaScript сможет его получить, поэтому вы используете функцию Anonymous внутри jQuery()
(то же, что и $ (document) .ready() или JavaScript onload Event). Затем вы получаете HTML с JavaScript, потому что эти элементы доступны onload
.
Я уверен, что его невозможно достать на 'myx' без редактирования головы. Является ли дублирование «myx» в вашем сценарии тела вариантом? – acbabis
@PHPglue Событие '.ready()' является исключением. Аргумент вместо этого является ссылкой на 'jQuery', как описано в разделе« [* Слияние пространства имен jQuery *] (http://api.jquery.com/ready/) » –