单击链接时替换div的内容时遇到问题。我能够替换一次内容,但不能再次替换它。我想我无法掌握新div的id。
单击“显示组1”,然后显示组2.我可以替换它们但不能再次替换组1。刷新页面以再次查看该过程。
感谢任何帮助。
答案 0 :(得分:1)
您的问题在于replaceWith()
您正在替换您正在使用的代码...
$j(".monitoringDesc").click(function(e) {
e.preventDefault();
$j(".widgetGroup").html($j("#newGroup").html());
$j(".widgetGroup").show("slide", {
direction: "right"
}, 200);
});
这使得容器widgetGroup
保持完好 - 只需使用.html()
Here is an example of both working using this method
你可以让你的代码和功能更加通用......首先在HTML中添加一些data
:
<li><a href="#" class="monitoringDesc" data-target="newGroup">Show group 1</a></li>
<li><a href="#" class="monitoringDesc" data-target="newGroup2">Show group 2</a></li>
我添加的是2 data-target
属性 - 然后以下jQuery将根据上述数据提取您需要的内容
$j(".monitoringDesc").click(function(e) {
e.preventDefault();
$j(".widgetGroup").html($j("#"+$j(this).data('target')).html());
$j(".widgetGroup").show("slide", {
direction: "right"
}, 200);
});
这使用.data()方法从上面的HTML中提取data-target
属性。我还改变了锚的类以匹配 - 所以我们可以在两个上都听取click事件。
答案 1 :(得分:0)
在这里,您可以找到更新的(工作)代码段: http://jsfiddle.net/qL6gB/6/
这是问题的核心:
$j(".widgetGroup").html($j("#newGroup").html());
使用它来更改div的内容
答案 2 :(得分:0)
根据themarcuz的回应,解决的问题确实是使用:
$('#divblockname').html(new content from partial view)
而不是
$('#divblockname').replaceWith(new content from partial view)
后者替换了ONCE中的内容然后停止了(不,我不知道为什么,我尝试将无缓存属性放在我的所有MVC操作上也无济于事。)
然而,立即使用.html(几个小时后)解决了这个问题。我认为其他人可能从中受益。