大家好我知道这是ASP.NET MVC中的一个已知问题,基本上我在这里的是一个带有类别(红色,蓝色,绿色)的照片库。
当我选择一个类别,说“红色”时,它会进行ajax调用并加载带有红色产品照片的页面。当我点击其中一张照片时,我希望它会被放大(灯箱有点效果)。我使用一个名为fancybox的jQuery插件。
但是你们都知道jQuery使用带有jquery的动态加载内容,但实际上并不适用于ASP.NET MVC。所以我将fQuerybox的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>');
}
}
});
});
});
这是其余的代码,但是当我点击图片时,它会打开一个新的浏览器..
答案 0 :(得分:1)
在你的document.ready call之前,把这行代码放在:
var $j = jQuery.noConflict();
然后将所有'$'引用替换为'$ j',您的代码现在应该可以正常工作。
其他一些javascript和jQuery脚本之间可能存在冲突,因此您的document.ready未被发现。这是解决问题的最快方法。如果您有野心,可以使用FireFox的错误控制台等工具找出正在发生的事情。