2014-09-11 127 views
1

背景:這是我的腳本文件。我需要在單擊部分視圖中的添加按鈕時複製html。jquery重新加載MVC剃鬚刀

//test.js 
$(function() { 


console.log("Entered function"); 


$(".add").click(function() { 


    console.log("inside button"); 
    var $addHtml = $('#Master').html(); 
    console.log($addHtml.toString()); 

    $('#Master').append($addHtml); 

    }); 
}); 

我在bundle.config註冊這個

bundles.Add(new ScriptBundle("~/bundles/EventHandlers").Include(
        "~/Scripts/test.js")); 

我已經在讀碩士佈局加載jQuery庫和

@Scripts.Render("~/bundles/jquery") 

我的局部視圖包含

@section Scripts { 


@Scripts.Render("~/bundles/EventHandlers") 
} 

@RenderSection("scripts", required: false) 

加載腳本相應的部分觀點

問題:我有個破發點嘗試。在調試模式下,我能夠查看網頁上新添加的html。在最後一步之後,該功能再次重新加載並打印「輸入的功能」。

回答

1

入住這 - 嘗試用這種方式來使用,例

<div class="TargetElements"> 
     <div class="editor-label"> 
      @Html.LabelFor(model => model.PhoneNumber) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.PhoneNumber) 
      @Html.ValidationMessageFor(model => model.PhoneNumber) 
     </div> 
</div> 

我用這個腳本:

(document).ready(function() { 
$('.add').click(function() { 
    $(".TargetElements:first").clone().insertAfter('.TargetElements:last'); 
}); 
}); 
0

註冊文件上點擊事件做好準備,如:

$(document).ready(function(){ 
     $(".add").click(function() { 


     console.log("inside button"); 
     var $addHtml = $('#Master').html(); 
     console.log($addHtml.toString()); 

     $('#Master').append($addHtml); 

    }); 
}); 

這是因爲你的功能在$還追加(「#大師」),所以它也再次運行.... 和你做不需要再次註冊點擊事件...

所以你將不得不在註冊文件上只註冊一次。

0

我不知道什麼是$('#Master')的內容。如果要附加您完整的局部視圖,然後Scripts.Render("~/bundles/EventHandlers")線就是爲什麼你的代碼再次得到executed.It將再次呈現腳本文件的原因。

我會建議你在局部視圖中創建div容器像下面...

@section Scripts { 


@Scripts.Render("~/bundles/EventHandlers") 
} 
    <div id="mainDiv"> 
     <div id="contentDiv"> ....</div> 

    </div> 

和腳本像

$(".add").click(function() { 


    console.log("inside button"); 
    var $addHtml = $('#contentDiv').html(); 
    console.log($addHtml.toString()); 

    $('#Master').append($addHtml); 

    }); 
}); 
+0

我沒有追加完整的局部視圖。包含標籤和文本框的#master的子div被複制。 – Vikram 2014-09-11 06:52:43