所以这是我的代码:
$(document).ready( function() {
$('#form').bind('change', function(){
$.ajax({
type: 'get',
url: 'api.php',
data: 'task=getdirs&formname='+$('#form').attr('value'),
dataType: "text",
success: function (html){
$('#chdir').html(html);
$('#chdir select').bind('change', getDirs());
}
});
});
function getDirs(){
}})
#form
这里有一个<select>
元素。 ajax 调用返回一段带有新内容的 html<select>
元素。
它工作得很好:在#chdir
div 我得到一个新的下拉元素。但里面的事件success
部分仅触发一次。那么这个活动就根本没有作用了。
我该怎么做才能使新创建的<select>
元素的工作方式与第一个元素相同吗?
您正在调用getDirs
直接在函数上bind
方法调用,只有当这个函数返回另一个函数时才应该这样做,但我认为情况并非如此。
Change:
$('#chdir select').bind('change', getDirs());
To:
$('#chdir select').bind('change', getDirs);
或者,如果您使用的是 jQuery 1.4+,您可以绑定change
事件与live http://api.jquery.com/live/方法只需一次,之后不需要重新绑定事件:
$(document).ready(function () {
$('#chdir select').live('change', getDirs);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)