2012-11-13 2 views
2

jQuery를 다음과 같은 오류 던지고 '적용'에는 방법이 없다 : 나는 이러한 관련 게시물을 발견했습니다catch되지 않은 형식 오류 : 개체 # <Object>이

Uncaught TypeError: Object # has no method 'apply'

f.event.dispatch

h.handle.i

을하지만,이를 사용하여 문제가 해결되지 수 : This를, thisthis.

$(document).ready(function(){ 
$('form.rating').click({ 
    cancelShow:true, 
    callback: function(ui, type, new_value) { 
     var values = ui.$form.serializeArray(); 
     values.push({ 
      'name': 'rating', 
      'value': new_value 
     }); 
     values = jQuery.param(values); 
     var msg = ui.$form.attr('update-msg'); 
     $(msg).removeClass('hidden'); 
     $(msg).show(); 
     $(msg).find('div.msg-default').show(); 
     $(msg).find('div.msg-result').hide(); 
     $.ajax({ 
      'type': 'POST', 
      'dataType': 'json', 
      'url': ui.$form.attr('action'), 
      'data': values 
     }).done(function(data) { 
      var overall_rating = ui.$form.attr('update-overall'); 
      if(overall_rating && data['overall_rating']){ 
       $(overall_rating).html(data['overall_rating']); 
      } 
      if(msg){ 
       $(msg).find('div.msg-default').hide(); 
       if(data['msg']) { 
        $(msg).find('div.msg-result').show(); 
        $(msg).find('div.msg-result').html(data['msg']); 
        window.setTimeout(function() { 
         $(msg).addClass('hidden'); 
        }, 2000); 
       } else { 
        $(msg).addClass('hidden'); 
       } 
      } 
      if(data['user_rating'] && data['user_rating']>0) { 
       ui.select(parseInt(data['user_rating'])); 
      } 
     }); 
    } 
}); 
}); 

어떤 아이디어 :

여기에 까다로운 코드는?

편집 :가 좋아, 내가 그것을 벗었 :

$(document).ready(function(){ 
    $('form.rating').click({ 
    }); 
}); 

그리고 여전히 같은 오류를 보이고있다. 이게 내 jQuery 스크립트와 관련이 있을까요? 표시되는 유일한 다른 정보는이 줄입니다. 그러나 파일에 총 3 줄이 있기 때문에 많은 도움이된다고 생각하지 않습니다. jquery-1.7.2.min.js : 3

+0

오류의 원인은 무엇입니까? – Felix

+0

그것은 말하지 않습니다. 그것은 jquery min js의 라인을 가리 킵니다.하지만 그것은 그대로 쓸모가 없습니다. – Cos

+0

나는 여전히 jQuery를 마스터하고 있으므로, 아마도 가지고있는 것은 속기에 합당하다. 그러나 다음과 같이해서는 안된다 : click (function() {// some code}); ' – FireCrakcer37

답변

5

jquery 클릭 처리기는 익명 함수는 다음과 같습니다.

$(document).ready(function(){ 
    $('form.rating').click(function() { 
     // go for it! 
    }); 
}); 
+0

당신이 할 수있는 방법이 있습니다 .click ({data : val}, function() {}) ... 고립되어 작동하지만 어쨌든, 문제가 생겼습니다. :-( – NullVoxPopuli

2

@Ludder는 가깝지만 약간 벗어났습니다. 그는 함수를 인수로 click에 전달해야 할 필요가 있지만 익명 일 필요는 없습니다.

a = {myFun: function(){console.log("a");}} 
$(document).ready(function(){ 
    $('body').click(a.myFun); 
}); 

b = function(){console.log("b");} 
$(document).ready(function(){ 
    $('body').click(b); 
}); 

function c() {console.log("c");} 
$(document).ready(function(){ 
    $('body').click(c); 
}); 

모든 알파벳의 자신의 비트를 기록합니다. 빈 객체를 클릭하여 전달하는 대신 대신 함수를 제공하십시오.

관련 문제