2010-05-25 113 views
3

我想在通过ajax从服务器返回的元素上添加一个单击事件。显然,我必须在我的回复响应中附加我的js文件,而不是我的主脚本。这是最佳做法吗?我是否必须创建分离的js文件才能在返回文本上添加事件?Jquery和Ajax发布问题

例子:

我的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> 

我不知道如果我让我q问题清楚。我想知道是否需要在返回文本上添加事件。是否必须在返回文本上添加js文件链接,或者在主页上有办法做到这一点。我只是想在主页上写我的js代码并保持简单。谢谢你的回复。

回答

1

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

+0

感谢。非常有用的信息。 – FlyingCat 2010-05-25 03:03:48

1

必须调用页面的JS文件包括输入<input type='button' id='add' value='add'/>

如果没有代码$("#add").click(function(){不会找到元素称为#add

+0

我明白了。谢谢回复。我相信约翰的回答也很好。 – FlyingCat 2010-05-25 03:27:05