作者Peruheru (还在想)
看板Ajax
标题[问题] 增加内容後套用function
时间Fri Jul 10 19:32:04 2009
我有两个PHP网页,以及一个.js的JavaScript语法档案
其中一个PHP档是主要的PHP网页档
有关於外观,或那个.js语法档案都是挂载在那一个网页上
在那个语法档内,我写了一小段jQuery的程式
主要是当使用者按下原先主画面上的某个按钮时
会使用jQuery.post()方法
去跟另外一个PHP档案传送该按钮的要求
然後将更改过後的资料传回主PHP档,用 jQuery("#id").html() 的方式
将原本就有内容的某块div内容刷新,但不切换网页
想让它看起来都在同一页完成,不会有整页刷新的情况出现
基本上做到目前这样是成功了
但有问题的是後面
我刷新後的资料同样会有跟上面类似的格式
而我希望它能套用跟上面已完成部分同样的function
但却不知道怎麽样套用上去
我刚刚试着将含有jQuery.post()方法的函式写成具名的函数
(边看网页跟书本边写的,大家的范例似乎都是写成不具名的)
然後想在 jQuery("#id").html()
完成後的下一行执行 jQuery("input").bind() 的方法
但这样好像不行,它会跑成无穷回圈的样子...
js的程式码部分长这样:
jQuery(document).ready(function(){
jQuery("input").bind("click",function(){
var da = jQuery(this).val();
var typ = jQuery(this).attr("name");
jQuery.post("/c2.php",{dType: typ ,Num: da},
function(res){
jQuery("#sel").html(res);
//jQuery("input").bind("click",clkEvent());
}
);
});
});
//的部分是我刚刚说到,原先想的做法
将原本要在ready时bind的函式写成有名字的
再等之後来bind
但或许是我漏了什麽重要的点
当我那样写时会变成无穷回圈
(之前为了判断程式有没有跑进去而写了个alert提式,会像视窗炸弹一样关不掉...)
再来我不使用bind()方法(ready时还是会使用,之後不用而已)
而同样写成具名的函式後,在第二个次php档输出时就多写了 onClick = "clkEvent()"
结果发现它的alert通知讯息有跑出来,但没有产生我要求的变化
甚至连上面原本可以用的也变成只剩下嘴炮(alert),更新功能不见了
我想请问,有什麽方法可以在读入其他来源的html资讯,并加入本身後
将新加入的部分,符合要求的标签都加上同样的程式码呼叫?
我不知道为什麽我的bind那样写会变无穷回圈
本来以为function只有在有人呼叫触发时才会动作,我搞错了吗?
请问要怎麽改才好呢?
谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.168.233.185
※ 编辑: Peruheru 来自: 118.168.233.185 (07/10 19:34)
1F:→ zhe01:依我看你可以试着用live 07/10 19:44
2F:→ zhe01:$("input").live("click",function(){...});写在ready里 07/10 19:46
3F:→ zhe01:原本的bind("click",...)就不要了 07/10 19:49
4F:→ Peruheru:原来如此,这的确是相当棒的方法呢 07/10 20:26
5F:→ Peruheru:不过我原本使用的jquery套件刚好不能用,刚更新XD 07/10 20:26
6F:→ Peruheru:谢谢你的回答! 07/10 20:26