Mouseover / MouseOut jquery

时间:2011-11-07 14:23:29

标签: javascript jquery

我意识到这个问题应该回答多么简单,但我处于药物迷雾状态,答案正在逃避。

如果鼠标输出时文本框的值为空,并且在鼠标悬停时清空文本值,我想把它变成一个显示特定文本的简单函数。

我现在所拥有的但是非常难看:

$(".disappearOnClick").live('mouseover',function() {    
            if($(this).val() === 'BFA Offset') {
                $(this).val('')
            }
        });

    $(".disappearOnClick").live('mouseout',function() {
            if($(this).val() === '') {
                $(this).val('BFA Offset')
            }
        });

5 个答案:

答案 0 :(得分:4)

您可以使用live()方法绑定到多个事件 - 因此您可以使用类似的内容 - >

$('.disappearOnClick').live('mouseover mouseout', function(event) {
  if (event.type == 'mouseover') {
     if($(this).val() === 'BFA Offset') {
            $(this).val('');
        }
  } else {
    if($(this).val() === '') {
            $(this).val('BFA Offset');
        }
  }
});

答案 1 :(得分:1)

$(".disappearOnClick").mouseover(function(){...});

$(".disappearOnClick").mouseout(function(){...});

同样有效。

答案 2 :(得分:1)

您应该使用hover代替:

$(".disappearOnClick").hover(
    function(){
        //mouseover
    },
    function(){
        //mouseout
    }
);

答案 3 :(得分:1)

您可以尝试这样的事情(您当然可以将焦点/模糊事件更改为鼠标事件):

http://jsfiddle.net/BD7JA/2/

// <input value="BFA Offset" data-placeholder="BFA Offset" class="is-placeholder" />

$('[data-placeholder]').on({
  focus: function (evt) {
    if ($(this).hasClass('is-placeholder')) {
      $(this).val('');
      $(this).removeClass('is-placeholder');
    }
  },
  blur: function (evt) {
    if ($(this).val() === '') {
      $(this).val($(this).data('placeholder'));
      $(this).addClass('is-placeholder');
    }
  }
});

答案 4 :(得分:0)

试试这个:

$(".disappearOnClick").mouseenter( function (this) {
    if ($('#'+this.id).val() == 'BFA Offset') 
        $('#'+this.id).val('')
}).mouseleave( function (this) {
    if ($('#'+this.id).val() == '') 
        $('#'+this.id).val('BFA Offset')
});