Jquery和Ajax Post问题

时间:2010-05-25 02:37:01

标签: jquery html ajax

我正在尝试通过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代码并保持简单。谢谢你的回复。

2 个答案:

答案 0 :(得分:1)

试试jquery live events。这些事件允许您在添加新元素时将事件附加到dom。例如,我运行我的页面,这个页面调用一个ajax get / post,它将id为“mydiv”的div插入到dom中。我的现场活动将挂钩新添加的div。 这样,您可以在一个库中保留单个页面的所有必需的javascript。看看它非常有用。

答案 1 :(得分:1)

您必须在页面包含输入<input type='button' id='add' value='add'/>

中调用您的js文件

如果不是,代码$("#add").click(function(){将找不到名为#add

的元素