如何在整个页面生命周期内强制加载onclick事件?

时间:2015-03-12 08:22:54

标签: jquery ajax events onclick

我在使用从服务器返回的数据(通过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事件?

1 个答案:

答案 0 :(得分:1)

尝试使用此方法绑定任何动态创建元素的点击事件。

$('document').on('click','#cvResults',function(){
    // your code.
})

由于您的页面init没有此元素,因此如果您以常规方式执行此操作,则不会绑定该事件。