jquery mouseover事件无法正常工作

时间:2013-03-20 17:56:43

标签: javascript jquery

我尝试使用dynamicdrive.com的Show Hint脚本在我的网站上显示表单错误。

目前错误显示为

  <span class="error">Error Message</span>

当其中一个输入出错时。

我想使用show hint脚本来显示此错误,然后我必须通过替换

来编辑每个有错误的页面
  <span class="error">Error Message</span>

    <span class="error erroranchor" onmouseover="showhint('Error Message Here', this, event, '200px')"></span>

手动

但我试图在这里节省一些能量,这就是为什么我决定使用JQuery,我是新的查询,这将是我的第一个编码loool,并且来自逻辑视图我认为JQuery将是最好的。这是我迄今为止所做的,但没有任何效果。

<script type='text/javascript'>
//On document ready.. I'm not sure if it should be document ready or document load.
    $(document).ready(function() {
//First i add the class "erroranchor" to <span class="error">
    $(".error").addClass("erroranchor");
//Then i've tried to convert the onmouseover event to JQuery mouseover event.
    $(".erroranchor").mouseover(showhint(){
//Here i try to get the "Error Message" from <span class="error">Error Message</span> so it can be displayed in the hint box.
        var $errortext = $(this);
        $errortext.text(),
        this.event,
        '200px'
    });
    });
</script>

然后有一个完全按照我想要的方式工作的CSS。

.error {
    text-indent: -99999px;
}
.erroranchor {
    background: url(anchor.png);
}

如果能够对上述JavaScript进行任何改进(请保持易于理解),我们将不胜感激。

2 个答案:

答案 0 :(得分:4)

您的mouseover绑定错误。它应该是

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

请注意,function代替showhint

如果你想在你的代码中的其他地方创建showhint()函数作为它自己的函数,那么绑定将是

$(".erroranchor").mouseover(showhint);

修改
如果您希望为每个'.erroranchor'添加不同的错误消息,则可以使用jQuery的data()功能:

<span class="error erroranchor" data-errormessage="Error message here"></span>
<span class="error erroranchor" data-errormessage="Different error message here"></span>

然后你的事件处理程序和功能:

$(".erroranchor").mouseover(showhint);

function showhint() {
    var errMsg = $(this).data('errormessage');
    if(errMsg) {
        //do stuff
    }
}

答案 1 :(得分:0)

试试这个

$(".erroranchor").mouseover(function(){
         showhint();
});