2012-01-25 7 views
2

私は= HREF続けるならば、私は動的アンカーがウィンドウを閉じるが、リロードのオン「」C#アンカーのonclickはページをリロードしないでくださいが、JavaScriptをトリガーしますか?

HtmlGenericControl content = new HtmlGenericControl(); 
content.InnerHtml = "<a id='close' href='' onclick='action()'>close</a><span>Some text here</span>"; 
divcontrl.Controls.Add(content); 
divcontrl.Attributes.Add("class", "myclass"); 



javascript method: 

function action() { 
     $('.myclass').hide(); 
    } 

から私のページ上(div要素である)ポップアップボックスにいくつかのコンテンツを追加していな状況を持っていますウィンドウを閉じるのではなく削除した場合、

+0

は ''のhref = '#' 試してみてください、多分それが助けになるでしょう。 – gdoron

+0

いいえ、私もそれを試しました.. – Tiger

+0

レンダリングされたHTMLを表示してください。 – gdoron

答えて

4
は、以下のようにattrにあなたのリンクタグを変更

//Edit changed from href="#" as it will scroll you to the top 
href="javascript:void(0);" onclick='return action()' 

とJS関数への復帰を追加

function action() { 
    $('.myclass').hide(); 
    return false; 
} 
+0

ありがとう、これは動作する、私はイベントで "リターン"を言及するのを忘れていたonclick = 'return action()' – Tiger

2

action()関数の最後の行にreturn false;を追加します。これにより、ページの再読み込み(デフォルトでは空のhrefは「同じURL」を意味します)のデフォルトのリンクアクションが無効になります。

追加。 onclick="action()"onclick="return action()"に変更してください。またはonclick="action(); return false;"

+0

まだページをリロードしています – Tiger

+0

私は私の答えを少し変えました。 – Olegas

1

<a href="#" ...を使用してください。または<a href="javascript:void(0);" ...>

すでに、<a href="#foo">Foo</a>は、IDが 'foo'の同じページ内の要素へのリンクを作成することがわかりました。この場合の#fooはフラグメント識別子と呼ばれます。これをクリックすると、ブラウザはリロードせずにページ内のその要素に「ジャンプ」します。

フラグメント識別子にページ内の任意の要素のIDが記載されていない場合(例:<a href="#">Foo</a>)、ブラウザはページの先頭にジャンプします。

関連する問題