簡體   English   中英

在AJAX調用(ASP.NET MVC)之后,JQuery停止工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM