2013-02-26 127 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(); 
});