嗨,大家好,我知道這是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