作者tomin (Schrödinger's cat)
看板Ajax
标题Re: [问题] 使用ajax时,回应的html只能append一次??
时间Tue Jan 26 02:13:26 2010
※ 引述《pillowYUI (枕由衣)》之铭言:
: <script language="javascript">
: $(function(){
: var html = $.ajax({
: type:"GET",
: url:"a.php",
: data:"给a.php的参数",
: async: false
: }).responseText;
: $("#content_main").append(html);
: });
: function click_f(){
: $("#sw_loc").change(function(){
: var sw_con = $('#sw_loc :selected').val();
: var html2 = $.ajax({
: type:"GET",
: url:"a.php",
: data: sw_con ,
: async: false
: }).responseText;
: //alert(html2);
: //以上印出html2内容
: $("#content_main").empty();
: $("#content_main").append(html2);
: });
: }
: </script>
: <body onLoad="click_f();">
: <div id="content_main"></div>
: </body>
: html2为a.php回传的资料(即下拉式选单的html),#sw_loc为a.php所产生的下拉式
: 选单。
: 若把红色的地方删掉,则能确定每次对a.php的要求的内容(即html2)都正确无误。
: 想请教各位是否是我对append的使用错误,还是其他的问题导致只有第一次选择
: option时执行正确??
问题不在append 而是change只在body onload时绑定那一次
之後动态load进来时 就没有再绑定change了
有两个解法
1.
用live, jQuery 1.4版支援change了
- $("#sw_loc").change(function(){
+ $("#sw_loc").live("change",function(){
2.
> $("#content_main").append(html2);
click_f();//多加这一行 再绑一次
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.122.30.140
1F:推 pillowYUI:感谢!!看来我对jQuery了解的还不够,谢谢你 01/26 12:43
2F:→ TonyQ:与其多了解 jQuery , 倒不如多了解js 事件处理的模型... 01/26 13:20