我试图在通过 ajax 从服务器返回的元素上添加单击事件。显然,我必须在返回响应中附加我的 js 文件而不是我的主脚本。这是最佳实践吗?我是否必须创建单独的 js 文件才能在返回文本上添加事件?
Example:
我的 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代码并保持简单。感谢您的任何回复。
Try jquery 现场活动 http://api.jquery.com/live/。这些事件允许您在添加新元素时将事件附加到 dom。例如,我运行我的页面,该页面调用 ajax get/post,将 id 为“mydiv”的 div 插入到 dom。我的现场活动将挂钩到新添加的 div。
这样您就可以将单个页面所需的所有 javascript 保留在一个库中。检查一下它非常有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)