【发布时间】:2014-05-04 06:18:35
【问题描述】:
我正在开发一个 asp.net C# MVC Web 应用程序,并提供一个 jquery UI 价格范围过滤器来根据选定的价格范围过滤产品。生成的产品通过 Ajax 加载,到目前为止一切正常。但是,升级到 jQuery 版本 1.10.2 和 jQuery UI 1.10.3 后,相同的滑块在第一次加载时工作,但在 Ajax 请求后无法加载。以下代码在执行过滤器的页面上。
相同的代码在 jQuery 1.7.1 和 jQuery UI 1.10.0 上运行良好。
似乎在通过 Ajax 加载内容后滑块没有初始化,但不知道为什么!这里有什么问题?
$("#slider-range").slider({
range: true,
min: minValue,
max: maxValue,
values: [selectedMinValue, selectedMaxValue],
values: [selectedMinValue, selectedMaxValue],
slide: function (event, ui) {
//Note: Currency Custom formatting is not supported.
$(".currentMinPrice").html('@(Model.PriceRangeFilterContext.CurrencySymbol) ' + ui.values[0]);
$(".currentMaxPrice").html('@(Model.PriceRangeFilterContext.CurrencySymbol) ' + ui.values[1]);
},
change: function (event, ui) {
var url = removeParameter('@(currentURL)', "price");
var newUrl = url.replace(/&/g, '');
if (isAjaxRequest) {
callAjax(UpdateQueryString("price", ui.values[0] + "-" + ui.values[1], newUrl));
}
}
});
isAjaxRequest = true;
$(".currentMinPrice").html('@(Model.PriceRangeFilterContext.CurrencySymbol) ' + $("#slider-range").slider("values", 0));
$(".currentMaxPrice").html('@(Model.PriceRangeFilterContext.CurrencySymbol) ' + $("#slider-range").slider("values", 1));
}
Ajax 函数
$.ajax(
{
url: url,
type: 'POST',
success: function (result)
{
// Result is in html
$('#catalog').replaceWith(result);
$('#ajax-loading').hide();
DisplayFilter();
//Lazy Loading
$("img.lazy").show().lazyload(
{
effect: "fadeIn"
});
$(window).trigger("scroll");
}
});
【问题讨论】:
-
我会尝试使用jQuery Migrate 只是为了了解它的工作原理,然后我可能会返回 jQuery 日志并查看有关 ajax 调用的更改,您可能会遗漏一些东西。 . jQuery UI 也一样(这里必须非常快,因为你有 1.10.0,现在只有 3 个版本)。
-
您好,我们尝试使用 jQuery Migrate 但没有相关通知。我将检查 jQuery Logs
-
请在您的问题中发布您的 Ajax 代码
-
@DaveA 使用 ajax 代码更新问题。请看一下。谢谢
-
我会将您的代码包装在 try/catch 中并将错误转储到控制台(通过
console.log());这至少会告诉您是否发生了实际错误。
标签: c# javascript jquery ajax jquery-ui-slider