2017-05-29 16 views
0

をdoesntの、私はreturn AjaxNavigate$OnClickHook(event, this);が含まれているナビゲーションを持っています。 リンク用の「ノーマル」<a href="...">タグもあります。のAjax Javascriptを:リンクがSharePointサイト上で作業

ここで、リンクされたコンテンツは、リンクタグ内の画像を追加することによって変更されています。

画像が正しい位置に表示されますが、カーソルはまた、右クリックのコンテキストメニューと択一「リンクを開く」または「新しいタブで開くリンク」を経由して開くことができるリンクが表示されます。 しかし、「通常」をクリックしても開きません。

私はAjaxのコードは、上記の通常のリンク処理を防止することを推測します。 画像を正しくリンクするにはどうしたらいいですか?

ありがとうございました。

編集: (SharePointサイトで主に生成される)関連HTML:

(...) 
 

 
<div 
 
    class="ms-displayInline ms-core-navigation" 
 
    id="DeltaTopNavigation" 
 
    role="navigation" 
 
    > 
 

 
    <div 
 
    class=" noindex ms-core-listMenu-horizontalBox" 
 
    id="zz13_TopNavigationMenu" 
 
    onclick="return AjaxNavigate$OnClickHook(event, this);" 
 
    > 
 
    <ul 
 
     class="root ms-core-listMenu-root static" 
 
     id="zz14_RootAspMenu" 
 
     > 
 
     <li class="static selected"> 
 
     <a 
 
      tabindex="0" 
 
      class="static selected menu-item ms-core-listMenu-item ms-displayInline ms-bold ms-core-listMenu-selected ms-navedit-linkNode" 
 
      accesskey="1" 
 
      href="https://xxx/sites/00001/SitePages/SomeSite.aspx" 
 
      > 
 
      <span class="additional-background ms-navedit-flyoutArrow"> 
 
      <span 
 
       class="menu-item-text" 
 
       style="text-align: center; display: inline-block; position: relative;" 
 
       > 
 
       <img 
 
       style="width: 50px; height: 50px;" 
 
       src="/sites/00001/SiteAssets/images/pic.png" 
 
       border="0" 
 
       > 
 
       <br>Text 
 
      </span> 
 
      <span class="ms-hidden">Currently selected</span> 
 
      </span> 
 
     </a> 
 
     </li> 
 
     <li class="static"> 
 
     <a 
 
      tabindex="0" 
 
      class="static menu-item ms-core-listMenu-item ms-displayInline ms-navedit-linkNode" 
 
      href="https://xxx/sites/00001/SitePages/SomeSite2.aspx" 
 
      > 
 
      <span class="additional-background ms-navedit-flyoutArrow"> 
 
      <span 
 
       class="menu-item-text" 
 
       style="text-align: center; display: inline-block; position: relative;" 
 
       > 
 
       <img 
 
       style="width: 50px; height: 50px;" 
 
       src="/sites/00001/SiteAssets/images/pic2.png" 
 
       border="0" 
 
       > 
 
       <br>Text 2 
 
      </span> 
 
      </span> 
 
     </a> 
 
     </li> 
 
    </ul> 
 
    </div> 
 

 
</div> 
 

 
(...)

EDIT 2: <img... -tagは、その後挿入されています、このコードを介して:

\t $('[id$="RootAspMenu"]').find('.menu-item-text').each(function(i,item) 
 
\t \t { 
 
\t \t \t var iconName = "pic_"; 
 
\t \t \t iconName += $(item).text().replace(" ","").toLowerCase(); 
 
\t \t \t iconName += ".png"; 
 
\t \t \t $(this).prepend('<img style="width:50px;height:50px;" src="/sites/00001/SiteAssets/images/'+iconName+'" border="0"><br/>'); 
 
\t 
 
\t \t \t $(this).css("display", "inline-block"); 
 
\t \t \t $(this).css("position", "relative"); 
 
\t \t \t $(this).css("text-align", "center"); 
 
\t \t } 
 
\t);
...と私はイメージ(そう、 <span>エリア?) "背後" 領域が正しくリンクされていることに気づきました。画像のみが表示されません。

は、画像がその後に挿入されたことがリンクの問題だろうか?どうすればこの問題を解決できますか?

+0

関連するJSコードとHTMLコードをすべて表示してください。例えば、 'return AjaxNavi ...'コードはどこにありますか? –

+0

可能な場合、私は疑問 –

+0

(原因Sharepointのスクリプトへの複雑なアクセスへの)挿入した画像タグを編集することによってこれを実現したいのですが、私はフォーマットしてみましたそれは読みやすくするためです。注意:要素間に空白を追加すると、望ましくない効果が生じることがあります。上では、 ''を改行していますが、元に戻す必要がある場合に備えて、これを覚えておいてください。 –

答えて

0

私はそれを自分で手に入れました!私は、画像を挿入するスクリプト/ jqueryのに挿入

、私はまた、これを置く:

if ($(this).parent().is("span")) { 
 
\t \t $(this).unwrap(); 
 
}

は...リンク内/画像の周囲<span>を奪います。今それは正しく動作します!

関連する問題