我正在尝试根据用户点击的链接替换智能模板中div的内容。
问题:当我点击链接时,href指向的页面会在浏览器的同一窗口中打开,而不是仅覆盖页面的一部分内容。
- >作为参考,this是网页。
以下是我的jQuery代码:
$('#notes').click(function(evt)
{
$('#main').html(($this).attr('href'));
evt.preventDefault();
});
根据FYE的建议更新了jQuery代码
$(document).ready(function(){
$('#notes').click(function(evt)
{
$('#main').append(get(($(this).attr('href'))));
evt.preventDefault();
});
});
它位于模板头部的脚本标记中。
hrefs的来源:
{block name=sidebar}
<p class="nav-header" id="notes">Notes</p>
{foreach $lectures as $lecture}
<a href={$lecture} class="notes">{$lecture@key}</a><br>
{/foreach}
{/block}
:定位:
{block name=body}
<div id="main">
Bob
</div>
{/block}
答案 0 :(得分:1)
首先,我认为jQuery.html()
不会像这样使用,它会用链接的地址替换div的内容,而不是其内容。
您应该使用像jQuery.ajax()
或jQuery.get()
这样的AJAX方法来获取内容,然后手动将其替换为append()
或appendTo()
但是为了防止该页面被打开,evt.preventDefault()
应该开展工作,请尝试return false;
,但我不确定。