Par*_*ker 0 html forms ajax jquery
所以现在我有了代码
$('[name=dept]').live('change',function() {
$('#course').load('getCla.php?dept='+$(this).val());
$('select.speedC').selectmenu({style:'dropdown',maxHeight: 250});
});
Run Code Online (Sandbox Code Playgroud)
基本上,它的作用是在选择值后传播表单选择菜单.问题是,第三行没有预期的动作,它试图在第二行完成填充列表之前执行.
有没有办法让第3行等到列表完成传播?(填写列表会重新格式化列表).
使用callback参数.load(),如下所示:
$('#course').load('getCla.php?dept='+$(this).val(), function() {
$('select.speedC').selectmenu({style:'dropdown',maxHeight: 250});
});
Run Code Online (Sandbox Code Playgroud)
当响应返回并且#course元素具有新内容时,回调将运行.如果您因任何原因需要它,它还会从服务器接收返回的html作为第一个参数.
此外,由于您的初始选择器是如此昂贵,我强烈建议.delegate()在这里,像这样:
$('body').delegate('[name=dept]', 'change', function() {
$('#course').load('getCla.php?dept='+$(this).val(), function() {
$('select.speedC').selectmenu({style:'dropdown',maxHeight: 250});
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2335 次 |
| 最近记录: |