2010-09-22 83 views
1

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

     }); 
    }); 

這是剩下的代碼時,我在圖像上單擊它的工作原理不同之處在於確定,它開闢了一個新的瀏覽器..

+0

你的代碼對我來說似乎沒問題。如果沒有Ajax涉及,這些工作嗎? – Reigel 2010-09-22 07:28:46

+0

@Ari,這實際上與asp.net mvc無關。你應該看看jquery.live():http://api.jquery.com/live/ – 2010-09-22 07:41:53

+0

@Mattias - 爲什麼['.live()'](http://api.jquery.com/live/ )?這無法幫助解決這個問題。 ;) – Reigel 2010-09-22 07:44:27

回答

1

您的document.ready呼叫之前,就把這行代碼:

var $j = jQuery.noConflict(); 

然後用'$ j'代替所有'$'引用,你的代碼現在應該可以工作。

其他javascript和jQuery腳本之間可能存在衝突,因此您的document.ready未被看到。這是解決問題的最快方法。如果您感覺雄心勃勃,可以通過使用諸如FireFox的錯誤控制檯等工具來了解發生了什麼。

+0

謝謝男人無關,它正在工作 – Ari 2010-09-22 08:27:02