2012-01-19 45 views
0

首先,我不確定我是否很好地闡述了我的問題的主題。jQuery 1.5.2:函數內的默認變量不可修改

我想在我的腳本開始處設置一個默認變量「var x」,我想稍後再修改它。例如:

$(document).ready(function(){ 
    var x = false; 
    $('elem').live('click', function(){ 
     x = true; 
     $('form').trigger('submit'); 
    }); 
    $('form').submit(function(){ 
     if (x == false) { 
      return false; 
     } 
    }); 
}); 

使用jQuery 1.4.2這似乎工作,「X」似乎是真實的形式提交。但是現在我正在使用1.5.2,它似乎不再適用於這種方式。任何人都可以指出我做錯了什麼?是因爲var x = false;將始終將變量的值重置爲false?

感謝

+0

目前的jQuery呢? –

+0

我會用當前的jQuery來嘗試它,但是我可能不會使用它,因爲網站的其他部分尚未經過測試//編輯:同樣的問題(1.7.1) – carlo

回答

0

無法攝製,工作完全正常jQuery的1.5.2:http://jsfiddle.net/BK2CH/3/

通過我會建議你使用.data()方法附上這個狀態形式的元數據,而不是污染的方法您的全球範圍與全局變量。就像那樣:

$('div').live('click', function() { 
    $('form').data('x', true).trigger('submit'); 
}); 

$('form').submit(function(){ 
    var x = $(this).data('x'); 
    if (x) { 
     return false; 
    } 
    return true; 
});