2014-05-14 5 views
0

내가 아주 간단한 코드, 작동하지 않는이 콜백합니다. 이 함수는 콘솔에서 호출 된 경우 자체적으로 올바르게 작동합니다. 오류입니다버튼 클릭 패스 인수는

function NetworkMarketSearching(types) { 
    var name, searchType; 
    if (types == 'NETWORK') { name = $('#NetworkName').val(); searchType = 0; } 
    else if (types == 'MARKET') { name = $('#MarketName').val(); searchType = 1; } 
    else if (types == 'CABLE') {name = $('#CableName').val();searchType = 2;} 
    $.ajax({ 
     type: 'POST', 
     url: '/Talent_/Common/NetworkMarketSearch', 
     dataType: 'json', 
     data: { 'name': name, 'searchType': searchType }, 
     success: function(data) { 
     } 
    }); 
} 

.on('click', ...

+0

id = NetworkSearch를 사용하여 DOM 요소를 클릭 할 때만 오류가 발생합니까? – Ishita

답변

1

의 라인에 NetworkMarketSearching('NETWORK') 퍼팅 때 반복적으로 시도 발생 '정의되지는 함수가 아닙니다'

$(function() { 
    $(document).on('click', '#NetworkSearch', function() { NetworkMarketSearching("NETWORK"); }); 
    $(document).on('click', '#MarketSearch', function() { NetworkMarketSearching("MARKET"); }); 
    $(document).on('click', '#CableSearch', function() { NetworkMarketSearching("CABLE"); }); 
}); 

문자열 매개 변수를 지원 doessnt 크리크 방법 , 이벤트 객체 매개 변수를 기대합니다.

+2

당신은 OP가 함수를 호출하고 그 결과를 (정의되지 않은) 콜백으로 할당한다는 사실을 설명해야합니다. –

+0

나는 당신이 무엇을 말하려고했는지 완전히 이해하지 못했다. 더 많은 정보를 원한다면 –

+0

을 보아도 효과가있다. http://javascript.info/tutorial/obtaining-event-object –

-1

함수를 호출하는 순간 함수가 존재합니까? 당신이 당신의 코드로 이동 작동하는 경우

function notify() { 
    alert("clicked"); 
} 
$("button").on("click", notify); 

은 다음, 매개 변수를 전달 : 단순 이동보십시오

는, JQuery와 사이트의 샘플 (http://api.jquery.com/on/)를 사용합니다.

+0

함수가 존재하지만, 다른 답변이 효과가있었습니다. 문자열 매개 변수 –

1

NetworkMarketSearching("NETWORK")은 함수를 즉시 호출하고 반환 결과 (정의되지 않음)를 콜백으로 지정하려고 시도합니다. 함수 내에서 유형을 참조 할 것

function NetworkMarketSearching(event) { 

과 :

$(function() { 
    $(document).on('click', '#NetworkSearch', { types: 'NETWORK' }, NetworkMarketSearching); 
    $(document).on('click', '#MarketSearch', { types: 'MARKET' }, NetworkMarketSearching); 
    $(document).on('click', '#CableSearch', { types: 'CABLE' }, NetworkMarketSearching); 
}); 

그런 다음 함수 정의는 다음과 같습니다

당신은 당신의 기능에 정보를 전달하는 data 인수를 사용하여 호출 예 :

event.data.types 

이 방법은 jQuery docs은 콜백에 전달 인수를 지정하지만 인라인 익명 함수로도 수행 할 수 있습니다. 즉, 다음과 같이 말하십시오 :

$(function() { 
    $(document).on('click', '#NetworkSearch', function() { 
     NetworkMarketSearching('NETWORK'); 
    }); 
    $(document).on('click', '#MarketSearch', function() { 
     NetworkMarketSearching('MARKET'); 
    }); 
    $(document).on('click', '#CableSearch', function() { 
     NetworkMarketSearching('CABLE'); 
    }); 
}); 
+0

과 관련이 있습니다. 직접 설명하지 못했습니다. –