用于动态附加div的Jquery Ui滑块

时间:2012-09-11 06:15:10

标签: php jquery-ui jquery uislider

我有一组带分页的数据的滑块,问题是包含滑块的div是通过ajax从ajax请求加载的。所以它不起作用。

分页功能:

function loadData(page){
                    loading_show();
                    confID = $("#confID").val();
                    verID = $("#confID").attr("v");
                    $.ajax
                    ({
                        type: "POST",
                        url: "paging-offlineTemp.php",
                        data: {page:page, confID: confID, verID:verID},
                        success: function(msg)
                        {
                                loading_hide();
                                $("#container").html(msg);
                                resize_iframe();
                                $(".slider").each(function(){
                                    $(this).slider({ animate: true,
                                        value: parseInt($(this).attr("preRate")),
                                        min: 0,
                                        max: 5,
                                        step: 1
                                    });
                                    if($(this).attr("preRate") == -1) {
                                        $(this).slider({ disabled: true }); 
                                        td = $(this).parent("td");
                                        tr = $(td).parent("tr");
                                        box= $(tr).find(":checkbox");
                                        $(box).attr("checked",true);

                                    }   
                                });
                        }
                    });
                }

pageing-offlineTemp.php太长但只是按限制选择下一组数据

控制滑块的功能:

$(".slider").each(function(){
                    $(this).slider({ animate: true,
                        value: parseInt($(this).attr("preRate")),
                        min: 0,
                        max: 5,
                        step: 1,
                        change: function( event, ui ) {
                            $(this).attr("rate", ui.value);
                            rate = $(this).attr("rate");
                            confID = $(this).attr("confID");
                            critID = $(this).attr("criteria");
                            paperID = $(this).attr("paperID");
                            label = $(this).parent("td").find("label");
                            $(label).html("New rate: "+ rate);
                            td = $(this).parent("td");
                            tr = $(td).parent("tr");
                            span = $(tr).find("span");
                            $(span).fadeIn("slow");
                            $.ajax ({
                                data:{rate:rate, confID:confID, critID:critID, paperID:paperID},
                                type: 'POST',
                                url:  'update_rate.php',
                                success: function(response) {
                                    //alert(response)
                                    $(span).delay(500).fadeOut('slow');
                                }
                            });
                        } 
                    });

slider div:

<div type="" paperID="'. $paper .'" preRate="'. intval($irate) .'"
                                 criteria="'.$row['rate_id'].'" confID="'.$conf_id.'" rate="" class="slider">
                    </div>

我想滑块功能不会触发,因为最初的分页容器div是空的,没有带滑块事件的元素,那么在滑块事件触发时是否有解决方法来保持分页?

2 个答案:

答案 0 :(得分:1)

简短回答:将您的$('.slider').each(移至ajax function

的成功回调中

答案 1 :(得分:0)

使ajax调用同步是一个解决方案或在成功回调函数中调用滑块函数也将起作用