2010-09-22 96 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

相关问题