2011-12-05 7 views
0

私はウェブページhttp://www.replyonline.co.uk/DirectionGroup/xmas/を持っており、ポップアップの1つの中のテキストに<a href="...">...</a>を追加しようとしています。JavaScript内でHTMLを動作させる

最初の赤い四角をクリックすると、そこにハイパーリンクしたい電子メールアドレスがあります。 HTMLを使用してハイパーリンクしようとすると、サイトが完全に分離されます。

私はそれは私がこれを用いて画像ポップアップ内のHTMLを追加行に235

を開始するJavaScriptで行う必要があると思う:

// opens one image item (fullscreen) 
loadImgPreview = function($item, callback) { 
    var largeSrc = $item.children('img').data('largesrc'), 
    description  = $item.children('span').html(), 
    largeImageData = { 
      src   : largeSrc, 
      description : description 
    } 
}); 

お知らせこの内.html()が、私はこのことを考えます画像ポップアップ内のHTMLを有効にします。

JavaScriptは実際にはわかりませんが、少し失礼です。

感謝、ありがとうございます。

+1

「サイトを完全に分割する」とはどういう意味ですか? 'email @ domain.com'というテキストを' [email protected] 'に変更するだけです。 –

+0

サイトをもう一度更新してください。 Tim

+0

It looks like you're surrounding everything in 'a' anchors, which is bad practice for this exact reason. I would suggest changing the surrounding anchor with a span or div. –

答えて

0

まず、<!DOCTYPE html>(HTML 5)のページにはHTML validation errorsが多数ありますので、ご注意ください。

HTML 5では、インライン要素とブロック要素(divなど)の両方をアンカー内に入れることができますが、内部に別のアンカーを使用することはできず、ナビゲーターにエラーとして表示されます。

第2に、ナビゲータはこれらのエラーを自動的に修正するため、電子メールリンクをアンカー内に追加すると、アンカークローズタグ(</a>)を追加することで自動的に修正されます。それは混乱を説明する。

<div class="ib-whatever"> 

とjQueryのコール$ibItems = $ibWrapper.find('div.ib-main > a')からに:また

$ibItems = $ibWrapper.find('div.ib-main > div') 

変更

、あなたのアイテム、$ibItems.bind('click.ibTemplate', function(event) {...をロードするためにjQueryを使用しているように、私の提案は、これらのアンカー<a class="ib-whatever">に変更することですstyle.css行78から.ib-main a {まで:

.ib-main .ib-image, .ib-main .ib-content { 

あなたは正しい方向に取り組んでいます。

希望します。

0

HTMLでリンクを作成したときにサイトが壊れている場合は、JavaScriptを使用してそのサイトを分割すると問題が発生します。 DOMは変わりません。

jQueryの.html()関数はhtmlなどを有効にしていないため、オブジェクトのHTMLのアクセサー/ミューテータです。 description = $item.children('span').html()が行っていることは、選択された要素のHTMLを取得することであり、あらゆる種類の機能を有効または無効にすることはありません。 html()の詳細については、jQuery APIを参照してください。

あなたの問題については、プレーンなHTMLでリンクを挿入すると、サイトが正確になぜ壊れているのかを調べることをおすすめします。

関連する問題