2011-12-08 12 views
0

私の_MainLayout(parentlayout)では、いくつかのJSファイルを参照しています。私はJSファイルでこれを設定した場合、私のマスターページ (によって読み込まれAsp.Net MVC 3 - PartialView(Ajax)用のJSファイルの複製

$.ajax(link, { 
      dataType: "html", 
      cache: false, 
      success: function(data, textStatus, jqXHR) { 
       return pageDownloaded(data, a); 
      }, 
      complete: function (jqXHR, textStatus) { 
      //add .on event 
      } 
     }); 

function pageDownloaded(data, anchor){ 
var link = anchor.attr("href").replace(/^\#/, ""), 
title = anchor.attr("title"), 
id = link.replace(/[\/\.]/,"-"), 
target = "#main-content", 
div = $('<div style="left: 100%" id="'+id+'">'+data+'</div>').appendTo($(target)); 
$("#wrapper > section > section > header h1").html(title); 

if ($('#wrapper > section > section').css('position')=='absolute') { 
    $("> div:last", target).css({left: 0, position: 'relative'}).siblings().remove(); 
    $('#wrapper > section > section').show().animate({left: 0}, 300, "easeInOutQuart",          function(){$(this).css('left',0);}); 
} else { 
/* $("> div", target).animate({left: "-=100%"}, "slow", "easeInOutQuart", function(){ 
     $(this).css('left',0); 
     $("> div:last", target).css({position: 'relative'}).siblings().remove(); 
    });*/ 
    $("> div", target).animate({ left: "-=100%" },500, function() { 
     $(this).css('left', 0); 
     $("> div:last", target).css({ position: 'relative' }).siblings().remove(); 
    }); 

} 

$(window).trigger('drilldown'); 
} 

問題:

Partialviewsは、次のJavaScript/jQueryの機能を使用してdiv要素に追加されますすべてのページに追加されるデフォルトアクション(日付入力、...)

(function($){ 
    $.fn.placeholder = function(options) { 
     return this.each(function() { 
     if (!("placeholder" in document.createElement(this.tagName.toLowerCase()))) { 
      var $this = $(this); 
      var placeholder = $this.attr('placeholder'); 
      $this.val(placeholder).data('color', $this.css('color')).css('color', '#aaa'); 
      $this 
      .focus(function(){ if ($.trim($this.val())===placeholder){  $this.val('').css('color', $this.data('color'))} }) 
      .blur(function(){ if (!$.trim($this.val())){  $this.val(placeholder).data('color', $this.css('color')).css('color', '#aaa'); } }); 
     } 
     }); 
    }; 
    })(jQuery); 

    $(document).ready(function() { 
     $('input[placeholder]', target).placeholder(); 

     $("input[type=date]", target).dateinput(); 

     $("input:checkbox,input:radio,select,input:file", target).uniform(); 

    }); 

PartialViewで再度参照する必要があります。 もう一度jquery.min.jsファイルを参照する必要があります...

この重複の問題をどうやって解決できますか?

答えて

0

これは混乱してかなり厄介な質問です。コードを整えるのに役立ちます。

これに続いて、ではなく、にon_loadタイプのアクティビティまたは追加のグローバルスクリプト参照が含まれるコンテンツページを読み込むことができます。

  1. ロードMasterPage(のスクリプト参照、CSSリファレンス、など)
  2. ロードContent(部分図、動的データ、特定のスクリプトなど)
  3. コンテンツはロードが完了しましたか?関数Content.Init()を実行します。 (例:MyView.GetData()
  4. ユーザー操作が開始されます。
+0

私はhashcange jqueryプラグインを使用しているので、これは不可能です。これにより、ドキュメント上のpartialviewを読み込み、私のゲストがURLをブックマークして正しいページにリダイレクトできるようになります:)。 追加アドバイス – NicoJuicy

関連する問題