2014-11-14 2 views
0

У меня есть два очень простых файлов: email.js и script.jsвыпуск по регистрации файлов JavaScript

в email.js является

$(function() { 
    function txtInput(elem) { 
     var inputData = $.trim(elem.val()); 
     if (inputData == "") { 
     alert("Filed Is Empty"); 
     } 
     else{ 
     return inputData; 
     } 
    } 
}); 

и script.js

$(function() { 
var proceed = false; 
    $("#btnContactUs").on("click", function (e) { 
    if (txtInput($('#name'))){ 
    proceed = true; 
    }else{ proceed = false } 
     e.preventDefault(); 
    }); 
}); 

которые я зарегистрировал в index.php как

<script src="js/email.js"></script> 
<script src="js/script.js"></script> 

Вопросы:

1 - Прежде всего $("#btnContactUs").on("click", function (e) {}); не делает любую вещь, так что я удалил

$(function() { 

}); 

из email.js и он начал работать! Не могли бы вы сообщить мне, почему это делает $(function() {});?

2 - Теперь код работает (после удаления $(function() ... из email.js), но я получаю предупреждение/ошибка в консоли как:

enter image description here

Можете ли вы позволить я знаю, почему это происходит? и как я могу это исправить?

Спасибо,

ответ

1

Когда функции и переменные, объявленные с var объявлены в других функций, они являются локальными для своих родительских функций. Вот почему txtInput не был определен до тех пор, пока вы не удалите $(function(){});.

Это должно было очистить «неопределенную» ошибку, тем более что ваш код теперь работает. Очистите консоль, обновите страницу и убедитесь, что она все еще показывает ошибку.

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