jQuery를 사용할 준비가 된 문서에서 일부 Node.js가 작동하고 있습니다. 두 파일 모두 준비된 문서가 있습니다. 그러나 한 파일은 다른 파일을 호출하고 함수를 인식하지 못합니다. ReferenceError : SocketGameOut이 정의되지 않았습니다.Javascript/JQuery 범위 문제
=========== File 1 =============
$(document).ready(function() {
var socket = io.connect('http://local.baseball.com:3333');
socket.on('news', function (data) {
SocketBroadcastIn(data);
});
socket.on('message', function (data) {
SocketGameIn(data);
});
function SocketGameOut(outstring) {
socket.emit('clientData', outstring);
}
});
============ File 2 ==============
$(document).ready(function() {
$("#login").click(function() {
var loginData = { command: 'login', user: $("#user").val(), pass: $("#password").val() }
var data = JSON.stringify(loginData);
SocketGameOut(data); <--This function call returns
ReferenceError: SocketGameOut is not defined
});
});
쉬운 방법 밖으로 것 SocketGameOut을 전역으로 만들 수 있습니다. 예를 들어 file1에서'document.ready' 안의 마지막 물건은'window.SocketGameOut = SocketGameOut'입니다. –