2013-03-02 9 views
3

오류가 있습니다. 나는 </body> 직전에 코드를 배치했다. 오류가 계속 발생합니다. 잡히지 않은 ReferenceError : myFunction이 정의되지 않았습니다.

<form action="" method="get" id="searchform" > 
<input name="q" type="text" id="search" size="32" maxlength="128" class="txt"> 
<input type="button" id="hit" value="Search" onclick="myFunction();return false" class="btn"> 
</form> 

JS

,

<script type="text/javascript"> 
    var nexturl = ""; 
    var lastid = ""; 
    var param; 
    $(document).ready(function() { 
     function myFunction() { 
      param = $('#search').val(); 
      alert("I am an alert box!"); 
      if (param != "") { 
       $("#status").show(); 
       var u = 'https://graph.facebook.com/search/?callback=&limit=100&q=' + param; 
       getResults(u); 
      } 
     } 
     $("#more").click(function() { 
      $("#status").show(); 
      $("#more").hide(); 
      pageTracker._trackPageview('/?q=/more'); 
      var u = nexturl; 
      getResults(u); 
     }); 
    }); 
</script> 
+0

그냥'$ (document) .ready()'구조를 제거하십시오. 코드가 바닥에있을 때는 필요 없습니다. –

+0

'onclick'을 사용하는 대신 jQuery로 이벤트 처리기를 바인딩하십시오. – Blender

답변

7

당신은 onclickmyFunction을 배치 할 수 없습니다. onclick이 표시되면 myFunction에 대한 정의가 없습니다.

태그를 <head> 태그에 삽입하십시오. 또한 ready() 외부로 함수를 이동하십시오. 이처럼

다음 jQuery docs에서 직접

i.e 
    <script> 

function myFunction() { 
    ..... 
} 
</script> 
+0

'myFunction'이'onclick' 속성의 앞 또는 뒤에 있다면 상관 없습니다. –

+2

@thehesystem thanks, updated answer ... – ATOzTOA

+0

@ATOzTOA : 코드를 외부로 옮겼지만 여전히 작동하지 않는 것 같습니다. –

3

킵하여 myFunction :

그래서 기능이 당신의 온 클릭이 후까지 만들어지지 않습니다

The handler passed to .ready() is guaranteed to be executed after the DOM is ready, so this is usually the best place to attach all other event handlers and run other jQuery code.

설립. 따라서 함수를 찾을 수 없습니다. $(document).ready(function(){}) 외부로 이동하고 싶을 것입니다.

+0

이 답변으로 해결책을 얻은 경우 대답으로 표시하십시오. – PSR

+0

9 분 ... –

1

스크립트 태그

<script type="text/javascript"> 
var nexturl =""; 
var lastid =""; 
var param; 

function myFunction() { 
    param = $('#search').val(); 
    alert("I am an alert box!"); 
    if (param != "") { 
     $("#status").show(); 
     var u = 'https://graph.facebook.com/search/?callback=&limit=100&q='+param; 
     getResults(u); 
     } 
} 

$(document).ready(function() { 

    $("#more").click(function() { 

    $("#status").show(); 
    $("#more").hide(); 
    pageTracker._trackPageview('/?q=/more'); 
    var u = nexturl; 
    getResults(u); 
    }); 

}); 
</script> 
</head> 
<body> 
... 
+0

전에 답을 표시 할 수 없습니다. 현재 작동하지만 한 번만 작동합니다. : –

+0

@FahadUddin 두 번째로 어떤 일이 발생합니까? 오류가 표시됩니까? –

+0

이 기능은 다시 실행되지만 처음에는 수행해야 할 작업을 수행하지 않습니다. –

관련 문제