2013-02-26 124 views
0

我有一個機構數據庫。每個機構有(其中包括)與動態/ AJAX選項3種鏈選擇:
- 國家
- 狀態
- 位置避免.change()事件被激發document.ready

當增加一個機構:如果用戶更改國家選擇,其.change()事件觸發,並加載在'州'選擇該國家的州,等等。

當用戶修改代理機構的信息/數據時,問題就會增加。我加載(用php)當前代理的國家,州和地點在各自的選項中,但當(document).ready發生火災時,選擇改變。

雖然我想保持change事件的每個動態鏈接選擇工作的動力,我怎麼能這樣做,以避免在.change()(document).ready解僱了嗎?我的意思是,「第一時間」事件觸發

的代碼鏈接選擇
http://jsfiddle.net/LWPVm/

也許另一個想法?

非常感謝

+0

我們可以看到你的Javascript代碼嗎?因爲它不應該在加載時觸發更改事件? – Liam 2013-02-26 14:31:20

+0

在更新'doucment.ready'中的'select'後附加事件處理程序 – Boynux 2013-02-26 14:33:25

+0

http://jsfiddle.net/LWPVm/ – Enrique 2013-02-26 14:36:04

回答

1

我可以通過刪除最後.change解決這個問題();調用每個函數。
這個.change被迫在(document).ready中激發事件。我現在記得我需要這樣鏈接選擇工作正常。希望這對其他人有用。

jQuery('#selProvincia').change(function(){ 
var val = this.value; 
jQuery.post('<?php echo site_url("funciones_ajax/obtener_departamentos"); ?>/'+val, 
    { }, 
    function(data) { 
     var sel = jQuery("#selDepartamento"); 
     sel.empty(); 
     for (var i=0; i<data.length; i++) { 
      sel.append('<option value="' + data[i].id + '">' + data[i].nombre + '</option>'); 
     } 
    }, "json"); }).change(); 
1
$(document).load(function(){ 
    $db.change(function(){ 
     event.stoppropagation(); 
}); 

將停止傳播。應該在頁面加載時工作。要小心,不要調用此函數,而的document.ready()的,則傳播將停止整體,你也可以使用:

$db.change(function(){ 
    event.preventDefault(); 
});