[英]JQuery stops working after an AJAX call (ASP.NET MVC)
大家好,我知道這是ASP.NET MVC中的一個已知問題,基本上我在這里擁有的是類別(紅色,藍色,綠色)的照相館。
當我選擇一個類別時,說“紅色”,它將進行ajax調用並在頁面上加載紅色產品的照片。 當我單擊其中一張照片時,我希望它會被放大(燈箱有點效果)。 我為此使用了一個名為fancybox的jQuery插件。
但眾所周知,jQuery使用的是動態加載的內容並帶有jquery的jQuery,實際上在ASP.NET MVC中不起作用。 因此,我將fancybox的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>');
}
}
});
});
});
這是剩余的代碼,它可以正常工作,除了當我單擊圖像時,它會打開一個新的瀏覽器。
在document.ready調用之前,請放置以下代碼行:
var $j = jQuery.noConflict();
然后用“ $ j”替換所有“ $”引用,您的代碼現在應該可以工作了。
其他一些javascript和jQuery腳本之間可能存在沖突,因此不會看到您的document.ready。 這是解決該問題的最快方法。 而且,如果您有雄心壯志,可以使用FireFox的錯誤控制台之類的工具找出正在發生的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.