0

ユーザーがクリックしたリンクに基づいて、smarty テンプレートの div のコンテンツを置き換えようとしています。

問題:リンクをクリックすると、ページの一部のコンテンツを上書きするのではなく、href が指すページがブラウザーの同じウィンドウで開きます。

--> 参考までに、こちらのページです。

以下は私の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();
            });

    });

テンプレートの head 内の script タグにあります。

href のソース:

 {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}
4

1 に答える 1

1

まず第一に、jQuery.html()このように使用されていないと思います.divの内容をリンクの内容ではなく、リンクのアドレスに置き換えます。

jQuery.ajax()orのような AJAX メソッドを使用してコンテンツを取得し、手動でorjQuery.get()に置き換える必要があります。append()appendTo()

しかし、ページが開かないようにするにevt.preventDefault()は、作業を行う必要がありますreturn false;。代わりに試してみてください。

于 2013-07-02T12:10:58.503 に答える