嗨,大家好,我知道这是ASP.NET MVC中的一个已知问题,基本上我在这里是一个带类别(红色,蓝色,绿色)的照片库。JQuery在AJAX调用后停止工作(ASP.NET MVC)
当我选择一个类别,说'红',它会做一个Ajax调用,并加载页面的红色彩色产品的照片。当我点击其中一张照片时,我预计它会被放大(灯箱有点效果)。我使用了一个名为fancybox的jQuery插件。
但因为你都知道jQuery使用动态加载的内容与jquery,它并不实际工作在ASP.NET MVC。所以我将jQuery调用添加到了ajax.success中。
但由于它是一个插件,函数$(“。fancybox”)。fancybox()没有注册并且表示它不是一个有效的javascript函数。我怎样才能解决这个问题,以便我可以在ajax调用之后做图像放大的事情?谢谢!
$(document).ready(function() {
$("select#Colors").change(function() {
var color = $("#Colors > option:selected").attr("value");
var tempnric = $(".tempnric").attr("value");
$("#ProductsDiv").hide();
$('#ajaxBusy').show();
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
url: "/FindProducts/" + color,
data: "{}",
dataType: "json",
success: function(data) {
$('#ProductsDiv > div').remove(); // remove any existing Products
if (data.length > 0) {
var options = '';
for (p in data) {
var product = data[p];
options += "<a href='/GetPhotoSet/" + product.PhotoID + "' class='fancybox load fade'><img src='/GetPhotoSet/" + product.PhotoID + "'/></a>";
}
$("#ProductsDiv").html(options);
$('#ajaxBusy').hide();
$("#ProductsDiv").show();
} else {
$("#Products").attr('disabled', true).html('');
$("#ProductsDiv").append('<div>(None Found)</div>');
}
}
});
});
});
这是剩下的代码时,我在图像上单击它的工作原理不同之处在于确定,它开辟了一个新的浏览器..
你的代码对我来说似乎没问题。如果没有Ajax涉及,这些工作吗? – Reigel 2010-09-22 07:28:46
@Ari,这实际上与asp.net mvc无关。你应该看看jquery.live():http://api.jquery.com/live/ – 2010-09-22 07:41:53
@Mattias - 为什么['.live()'](http://api.jquery.com/live/ )?这无法帮助解决这个问题。 ;) – Reigel 2010-09-22 07:44:27