我在使用从服务器返回的数据(通过Ajax)创建的按钮上有一个onClick事件。我的代码大纲如下:
$(document).on('pageinit', function() {
$.ajax({
url: '/',
dataType: 'json',
type: 'POST',
contentType: 'application/x-www-form-urlencoded',
data: textInput,
success: function (response) {
if(response.error_code!=null){
alert(response.user_message);
}
else {
//code to generate button with id tag `cvResults`
$('#cvResults').click(function(e) {
// some code here, redirects to another mobile page
}
},//then remainder of ajax function
我最初尝试将onClick函数放在Ajax调用之外(但在pageinit
内)。这不会触发,因为页面会在没有任何#cvResults
标记的情况下启动,因此不会加载该函数。
我现在有一个不同的问题。当您单击此按钮并转到另一页时,如果您再按back
并尝试再次单击该按钮,则不会触发该事件。这是有道理的,因为Ajax没有响应。
我如何满足这两种情况,并且只在#cvResults
标记存在时永久监听onClick事件?
答案 0 :(得分:1)
尝试使用此方法绑定任何动态创建元素的点击事件。
$('document').on('click','#cvResults',function(){
// your code.
})
由于您的页面init没有此元素,因此如果您以常规方式执行此操作,则不会绑定该事件。