#javascript #jquery #function-calls
#javascript #jquery — jquery — запрос #вызовы функций #jquery
Вопрос:
function convertDateFormat(){
// alert("hi");
$(".tour-dates ul li").each(function(){
// alert(monthConvert($(this).find(".month").text()));
var replace = monthConvert($(this).find(".month").text());
$(this).find(".month").text(replace);
});
}
У меня есть вышеупомянутая функция в js-файле, и я вызываю ее из $(document).ready(function(){...
вы можете видеть, что у меня есть два комментария к предупреждениям.
если они прокомментированы, функция, похоже, не вызывается, потому что изменения не отражены. Если я удалю комментарий и позволю оповещению сработать, изменения появятся!
Что я делаю не так?
К вашему СВЕДЕНИЮ: функция monthConvert:
function monthConvert(monthInt){
var monthArray = new Array();
monthArray["1"]="JAN";
monthArray["2"]="FEB";
monthArray["3"]="MAR";
monthArray["4"]="APR";
monthArray["5"]="MAY";
monthArray["6"]="JUN";
monthArray["7"]="JUL";
monthArray["8"]="AUG";
monthArray["9"]="SEP";
monthArray["10"]="OCT";
monthArray["11"]="NOV";
monthArray["12"]="DEC";
return monthArray[monthInt];
}
Комментарии:
1. Пожалуйста, минимальный набор тестов. Оно должно включать вашу функцию monthConvert — если там возникает ошибка, функция, похоже, ничего не делает, но предупреждения отображаются перед вызовом этой функции, поэтому они все равно будут работать.
2. Не используйте оповещения, поскольку они не дают вам истинной картины того, что на самом деле делает ваша функция. Вместо этого используйте console.info () с помощью инструментов разработчика Firebug или WebKit. Таким образом, вы можете видеть инструкции протоколирования и по-прежнему видеть, как ваш код выполняется без блокировки поведения.
3. не console.info () создавать ошибки JS в браузерах IE? кстати, это console.info () и console.log() то же самое?
Ответ №1:
Возможно, вы могли бы проверить журналы JavaScript вашего браузера на наличие ошибок.
В Internet Explorer 9 нажмите F12
В Firefox загрузите firebug.
В Chrome нажмите CTRL SHIFT J
Комментарии:
1. Возможно, также, на данный момент, переместите эту функцию в свой встроенный скрипт для целей тестирования.
2. У меня есть firebug, и я проверил консоль ошибок. Ошибки нет : (
3. Вы пробовали перенести код во встроенные теги скрипта? Кроме того, вы могли бы попробовать добавить некоторые динамические параметры в ваш скрипт на javascript src. например,
<script src='js/functions.js?time=<?php echo(time()); ?>' />
4. что делает этот параметр: ?time =
5. Это ничего не делает на стороне сервера, но если URL меняется каждый раз при загрузке страницы, браузер никогда не получит возможности кэшировать его, потому что, если URL изменяется, он обрабатывает его как совершенно новый URL.
Ответ №2:
Трудно точно понять, что происходит, не видя полного HTML, но минимальный тестовый пример из вашего кода выше, похоже, работает, с предупреждениями или без них: http://jsfiddle.net/g_thom/5ChNh /
Итак, ваши проблемы, похоже, лежат в другом месте, чем приведенный на данный момент код.
Ответ №3:
Ваш файл Javascript кэшируется браузером. Просто отключите кэш или нажмите Ctrl F5, чтобы обновить страницу.
Комментарии:
1. Это не привело бы к тому, что функция просто перестала бы работать только потому, что предупреждения были прокомментированы. OP говорит, что если комментарии удалены, это просто вообще не работает. Если бы это были проблемы с кэшированием, OP все равно бы видел оповещения, а не вообще ничего.
2. Я пробовал Ctrl F5, Ctrl Shift R, Ctrl R… Никаких изменений : (
3. @Pack Hack можете ли вы опубликовать свой HTML-код? Вы загружаете контент через AJAX или вызываете функцию перед загрузкой html?
4. Мой HTML <ul><li> <div class= «date»> <span class=»dayow»> Чт</span> <span class=»месяц»> 6</span> <span class=»day»> 9</span> </div> </li>