javascript mouseover / out结合点击行为

时间:2013-02-12 09:10:12

标签: javascript jquery html css

我是编程新手,请给我一个怜悯。以下是我的代码:

$(function(){
document.getElementById("custom_link").addEventListener("mouseover",function(){
document.getElementById("siteContent").contentDocument.getElementById("custom_div").classList.toggle('highlightDiv');
},false)})

$(function(){
    document.getElementById("custom_link").addEventListener("click",function(){
    document.getElementById("siteContent").contentDocument.getElementById("custom_div").classList.add('highlightDiv');
    },false)})

我想做的是:

  1. 当用户在“custom_link”上悬停鼠标时,“custom_div”正在突出显示。
  2. 当用户将鼠标移开“custom_link”时,“custom_div”中的突出显示将被消除。
  3. 当用户点击在“custom_link”时,“custom_div”再次突出显示。但是,当用户将鼠标移出时,'highlightDiv'仍会被添加到“custom_div”。
  4. 根据我的代码,它无法正常工作,因为悬停时的行为很奇怪。如果您能用完整的代码结构或jsfiddle示例解释我,那将是非常好的。感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

您正在将Javascript与其框架jQuery混合使用。坚持使用jQuery。

// CSS: Create the highlight accessible with two classnames.

.highlight, .highlight_stay{
    background:yellow;
}

Jquery的

$(function(){
     $('.custom_link').hover(function(){
          $(this).addClass('highlight');
      }, function(){
          $(this).removeClass('highlight');
      });

      $('.custom_link').click(function(){
           $(this).addClass('highlight_stay');
      });
});

答案 1 :(得分:1)

http://jsfiddle.net/ETrjA/2/

$('#custom_link').hover(function () {
    $('#custom_div').toggleClass('highlighted'); 
});

$('#custom_link').click(function (e) {
   $('#custom_div').addClass('highlighted');
   $(e.currentTarget).unbind('mouseenter mouseleave');
});

您只需要一个课程highlighted,您可以通过click直接在e.currentTarget事件回调中访问该链接元素。

答案 2 :(得分:0)

这是一个链接http://jsfiddle.net/8GV7B/2/

 $(function(){
        mouse_is_clicked = false;
         $(".custom_link").hover(function(){ 
            $("#container").addClass("highlight");
        }, function(){ 
            if(!mouse_is_clicked){ 
                $("#container").removeClass("highlight");
            }else{
                mouse_is_clicked = false;
            }
        });

          $(".custom_link").click(function(){
               $("#container").addClass("highlight");
              mouse_is_clicked = true;
          });
    });