2014-09-11 62 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