jQuery中的全局变量

时间:2010-04-23 02:08:55

标签: jquery global-variables global

我一直在研究这个剧本:

<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript">
$(function(){
    compentecy = $('#competency_id');
    $('#add_competency').bind('click', function(e){
        e.preventDefault();
        $.post('/script.php', {competency_id: compentecy.val(), syllabus_id: 2}, function(){
            // competency = $('#competency_id');
            competency.children('option[value=' + compentecy.val() + ']').remove();
        });
    });
});
</script>

在$ .post回调函数中,似乎我无法访问全局变量。我试过了$.competency,但它没有用。我总是得到“能力未定义”的错误。我不得不在回调中再次重新初始化变量。有没有办法不重新初始化回调中的变量?

2 个答案:

答案 0 :(得分:3)

OMG。这是我猜的那些日子之一。变量的拼写错误:P

答案 1 :(得分:1)

您可以像这样使用.proxy()

$.post('/script.php', {competency_id: compentecy.val(), syllabus_id: 2}, 
  $.proxy(function(){
    this.children('option[value=' + this.val() + ']').remove();
  }, compentecy)
);

$.proxy()让您确定回调中的this内容,仅适用于以下情况:)