【问题标题】:Xajax and JqueryXajax 和 Jquery
【发布时间】:2013-01-10 16:50:58
【问题描述】:

我有一个在 xajax 中实现分页的页面。每行有 3 列用于用户可以选择的单选按钮(请参阅随附的示例布局以了解)。然后当我从第 1 页选择并移动到第 2 页时,应该保留该值。如果我回到第 1 页,我可以看到我所做的选择。

我有一个代码可以处理从第 1 页到另一页的值选择。

$('.pagination_wrapper').live('click', function(){                      
            $(document).ready(function(){
                var my_option_1 $('#sel_option_1_val').val();
                var my_option_2= $('#sel_option_2_val').val();  
                var my_option_3= $('#sel_option_3_val').val();              
                $('[type="radio"][name="sel_option_1_val_option"][value="'+my_option_1+'"]').attr('checked','checked');
                $('[type="radio"][name="sel_option_2_val_option"][value="'+my_option_2+'"]').attr('checked','checked');
                $('[type="radio"][name="sel_option_3_val_option"][value="'+my_option_3+'"]').attr('checked','checked');             
            });
        }); 

现在我的问题是,当我从第 1 页移动到另一个单选按钮时,即使它在表列表中也没有被选中,因为 xajax 请求尚未完成,但 jquery 已经执行了选择。在函数中添加警报将使其正常工作,因为 dom 已经加载并且在执行此部分之前 $('[type="radio"][name="sel_option_1_val_option"][value="'+my_option_1+'"] ').attr('checked','checked');

这是带有警报的代码:

$('.pagination_wrapper').live('click', function(){                      
            $(document).ready(function(){
                var my_option_1 $('#sel_option_1_val').val();
                var my_option_2= $('#sel_option_2_val').val();  
                var my_option_3= $('#sel_option_3_val').val();  
alert('test');              
                $('[type="radio"][name="sel_option_1_val_option"][value="'+my_option_1+'"]').attr('checked','checked');
                $('[type="radio"][name="sel_option_2_val_option"][value="'+my_option_2+'"]').attr('checked','checked');
                $('[type="radio"][name="sel_option_3_val_option"][value="'+my_option_3+'"]').attr('checked','checked');             
            });
        }); 

知道我需要做什么才能使单选按钮的选择只有在 xajax 请求完成后才会执行?我试过 setTimeout(), jquery.load 但还是不行。

【问题讨论】:

  • 您不应该将$( document ).ready() 放入事件中。绑定代码在页面加载时运行,事件触发时页面已经加载完毕。
  • 嗯,是的,我做到了,但这并不能解决问题。我现在可以让它工作了。请看我下面的回答。 :)
  • 是的,抱歉,这并不是对实际问题的回答,只是一个旁注。
  • 刚刚发现将xajax置于同步模式在IE中不起作用。还有其他方法可以绕过吗?

标签: jquery settimeout delayed-execution xajax


【解决方案1】:

我能够自己修复它。将我的 xajax 请求配置为同步。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多