【问题标题】:Disable JavaScript mouseenter/mouseleave on click单击时禁用 JavaScript mouseenter/mouseleave
【发布时间】:2016-06-27 13:43:34
【问题描述】:

对于我的网站,我有一个图像,在 mouseenter/mouseleave 上会更改它的源并切换一个 gylphicon。我想这样做,如果单击 glypicon,则 mouseenter/mouseleave 函数不再运行。单击时,图像不应在悬停时更改状态,并且只能在单击时更改。

我的 HTML:

 <div id="mySplash1Mobile" class="carousel-splash slide" data-ride="carousel">
  <div class="carousel-inner" role="listbox">
    <div class="item active">
      <img src="img/index-splash/1main.jpg" onmouseenter="hover1(this);" onmouseleave="unhover1(this);" id="ImageButton1" width="100%">
    </div>
    </div>
    <a class="glyphicon glyphicon-triangle-bottom glyphicon-read-more" href="javascript:click1();" id="GlyphiconButton1">
      <span class="sr-only">More</span>
    </a>
  </div>

我的 JavaScript: var hoverState = true;

//Image Hover Blur
if (hoverState == true)
{
  function hover1(element) {
      element.setAttribute('src', 'img/index-splash/1blur.jpg');
      $('#GlyphiconButton1').toggleClass("glyphicon-triangle-top");
  }
  function unhover1(element) {
      element.setAttribute('src', 'img/index-splash/1main.jpg');
      $('#GlyphiconButton1').toggleClass("glyphicon-triangle-top");
  }

//Image Glyphicon Click Read More
var image_tracker1 = 'main';

function click1() {
  var image = document.getElementById('ImageButton1');
  if(image_tracker1=='main'){
    image.src = 'img/index-splash/1blur.jpg';
    $('#GlyphiconButton1').toggleClass("glyphicon-triangle-top");
    image_tracker1 = 'blur';
  }else{
    image.src = 'img/index-splash/1main.jpg';
    $('#GlyphiconButton1').toggleClass("glyphicon-triangle-top");
    image_tracker1 = 'main';
  }
  hoverState = false;
}

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    尝试将if(hoverState) 放在函数中:

    var hoverState = true;
    
    //Image Hover Blur
    function hover1(element) {
       if (hoverState) {
          element.setAttribute('src', 'img/index-splash/1blur.jpg');
          $('#GlyphiconButton1').toggleClass("glyphicon-triangle-top");
       }
    }
    
    function unhover1(element) {
       if (hoverState) {
          element.setAttribute('src', 'img/index-splash/1main.jpg');
          $('#GlyphiconButton1').toggleClass("glyphicon-triangle-top");
       }
    }
    
    //Image Glyphicon Click Read More
    var image_tracker1 = 'main';
    
    function click1() {
      var image = document.getElementById('ImageButton1');
      if(image_tracker1=='main'){
        image.src = 'img/index-splash/1blur.jpg';
        $('#GlyphiconButton1').toggleClass("glyphicon-triangle-top");
        image_tracker1 = 'blur';
      }else{
        image.src = 'img/index-splash/1main.jpg';
        $('#GlyphiconButton1').toggleClass("glyphicon-triangle-top");
        image_tracker1 = 'main';
      }
      hoverState = false;
    }
    

    【讨论】:

    • 这并不能解决问题,它现在不会改变悬停或点击时的图像
    • @Kate 请提供一个 jsfiddle 以便我进行测试。这应该可以解决问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2016-05-11
    • 1970-01-01
    相关资源
    最近更新 更多