我正在尝试通过ajax从服务器返回的元素上添加click事件。显然,我必须在我的返回响应中附加我的js文件而不是我的主脚本。这是最好的做法吗?我是否必须创建单独的js文件以在返回文本上添加事件??
示例:
我的Jquery - selectWeek.js
$(document).ready(function(){
//handle ajax..
var url="sendSchedule.php";
$.post(
url,
{week:input},
function(responseText){
$("#ajax").html(responseText);
},
"html"
);
// click on #add button
$("#add").click(function(){
//do something
return false;
});
});
我的主页
<script type="text/javascript" src="JS/selectWeek.js"></script>
</HEAD>
<BODY>
//the code that trigger ajax is omitted
<div id=ajax>
//the response text will be inserted here
</div>
</BODY>
</HTML>
来自服务器的响应
// display html (omit)
// Do I have to attach the same js file to let #add listen the event?
<script type="text/javascript" src="JS/selectWeek.js"></script>
<form>
<input type='button' id='add' value='add'/>
</form>
我不确定我是否清楚问题。我想知道是否需要在返回文本上添加事件。我是否必须在返回文本上添加js文件链接,或者有一种方法可以在主页面上执行此操作。我只是想在主页上编写我的js代码并保持简单。谢谢你的回复。
答案 0 :(得分:1)
试试jquery live events。这些事件允许您在添加新元素时将事件附加到dom。例如,我运行我的页面,这个页面调用一个ajax get / post,它将id为“mydiv”的div插入到dom中。我的现场活动将挂钩新添加的div。 这样,您可以在一个库中保留单个页面的所有必需的javascript。看看它非常有用。
答案 1 :(得分:1)
您必须在页面包含输入<input type='button' id='add' value='add'/>
如果不是,代码$("#add").click(function(){
将找不到名为#add