4

ページを更新または再読み込みするときに、画像部分の下をクリックすると、選択したテキストが円の中央に表示されます。

  1. 目標と懸念について話し合う
  2. キャッシュフロー分析
  3. 税務分析...

等々。

例: http: //ivyfa.advisorproducts.com/financial-planning-process

選択したテキストは最初のクリックでのみ表示されます。これらの画像部分をもう一度クリックすると、選択したテキストは表示されません。したがって、最初の試行でもテキストから選択を削除したいと思います。

この問題を説明するのは難しいです。以下は私が使用しているJSコードです-問題は機能にあると思いChangeText()ます。

/*----------Text change on click - Our Process page---------------*/
var prev;
var IdAry = ['slide1', 'slide2', 'slide3', 'slide5', 'slide8', 'slide9', 'slide12', 'slide13', 'slide14', 'slide15', 'slide16'];
window.onload = function() {
  for (var zxc0 = 0; zxc0 < IdAry.length; zxc0++) {
    var el = document.getElementById(IdAry[zxc0]);
    if (el) {
      setUpHandler(el);
      el.onmouseover = function() {
        $(this).addClass("hover");
      }
      el.onmouseout = function() {
        $(this).removeClass("hover");
      }
    }
  }
}
function setUpHandler(el) {
  /*---------This is used to add selected class on clicked id only and remove class selected from rest---------*/
  $("#" + IdAry.join(",#")).click(function() {
    $(this).addClass("selected");
    $("#graphics .selected").not(this).removeClass("selected");
  })
  /*---------This will add show hide class to thier spans and vise versa-------*/
  $("#" + IdAry.join(",#")).click(
    function() {
      changeText(this, "hide", "show");
    },
    function() {
      changeText(this, "show", "hide");
    })
}
function changeText(obj, cl1, cl2) {
  obj.getElementsByTagName('SPAN')[0].className = "hide";
  obj.getElementsByTagName('SPAN')[1].className = "show";
  if (prev && obj !== prev) {
    prev.getElementsByTagName('SPAN')[0].className = "show";
    prev.getElementsByTagName('SPAN')[1].className = "hide";
  }
  prev = obj
}

別の2つの画像タグをクリックしたときに、選択したテキストを中央のテキストから削除したいだけです。

選択したテキストを表示する画像:

選択したテキストを表示する画像

4

1 に答える 1

13

コントロールを表示したら、テキストの選択をクリアする必要があります。この関数を呼び出すことでこれを行うことができます (完全にクロスブラウザーである必要があります):

function clearSelection() {
    if (window.getSelection) window.getSelection().removeAllRanges();
    else if (document.selection) document.selection.empty();
}
于 2012-11-16T11:00:32.633 に答える