2009-07-17 88 views
1

这是我asp.net JQuery的.hover事件给出了 “对象预期” 的错误

在我的.master页面上,我有以下

<script type="text/javascript"> 
$(document).ready(function() { 
    $(this).hover(function() { 
     $(this).addClass("ui-state-hover"); 
    }, 
     function() { 
      $(this).removeClass("ui-state-hover"); 
     } 
    ).mousedown(function() { 
     $(this).addClass("ui-state-active"); 
    }) 
    .mouseup(function() { 
     $(this).removeClass("ui-state-active"); 
    }); 
}); 

和我的ASP。网络按钮声明如下

<asp:button runat="server" id="cmdSubmitShipmentRequest" cssclass="ui-button ui-state-default ui-corner-all" text="Submit" /> 

预期的行为是,任何时候鼠标指针悬停在并从任何按钮中删除上面声明的css类。目前默认的CSS属性适用,但任何时候我悬停进出按钮我得到以下错误“对象预期”第11行(IE8其他浏览器不显示任何内容),这是"<script type="text/javascript">"开始的位置。

任何线索,我可能做错了什么?

使用答案


我在做两件事情错

  1. 我用$(这).hover应的被$( 'UI按钮')编辑。悬停,我最初但我输入它作为$(“。ui-button”)。悬停注意双引号!

  2. 在我的.master页面上我使用asp.net宣布我的JavaScript的JavaScript经理如下

的问题是,我有脚本声明低于我的JavaScript代码块!

最后,这是JavaScript和代码块的样子,并且所有的功能都可以正常工作。

<asp:scriptmanager id="scriptManager" runat="server"> 
    <scripts> 
     <asp:scriptreference path="~/javascript/jquery-1.3.2.min.js" /> 
     <asp:scriptreference path="~/javascript/jquery-ui-1.7.2.custom.min.js" /> 
     <asp:scriptreference path="~/Javascript/thickbox.js" /> 
    </scripts> 
</asp:scriptmanager> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('.ui-button').hover(function() { 
      $(this).addClass("ui-state-hover"); 
     }, 
      function() { 
       $(this).removeClass("ui-state-hover"); 
      } 
     ).mousedown(function() { 
      $(this).addClass("ui-state-active"); 
     }) 
     .mouseup(function() { 
      $(this).removeClass("ui-state-active"); 
     }); 
    }); 
</script> 
+0

$(this).hover(...)。这在这方面是什么?你是否试图将这个应用于按钮或文档?错字? – 2009-07-17 16:45:27

回答

3

试着改变你的代码,这....

$(document).ready(function() { 
    //SELECT THE .ui-button CLASS INSTEAD OF this 
    $('.ui-button').hover(function() { 
     $(this).addClass("ui-state-hover"); 
    }, 
       function() { 
        $(this).removeClass("ui-state-hover"); 
       } 
     ).mousedown(function() { 
      $(this).addClass("ui-state-active"); 
     }) 
     .mouseup(function() { 
      $(this).removeClass("ui-state-active"); 
     }); 
}); 

我不相信,“这”已经在使用此行代码,您定位的背景下...

$(this).hover(function() { 

尝试用以下替换上面的行...

$('.ui-button').hover(function() { 
+0

我以前使用过“ui-button”,但是我用双引号而不是单引号!我也有上面的JavaScript代码以上我的jquery声明,也感谢您的快速反应 – 2009-07-17 16:56:46

1

这会给你更多你想要的东西吗?

另外,请确保您在上面的某处包含jquery库。

$(document).ready(function() { 
    $('.ui-button').hover(function() { 
     $(this).addClass("ui-state-hover"); 
    }, 
       function() { 
        $(this).removeClass("ui-state-hover"); 
       } 
     ).mousedown(function() { 
      $(this).addClass("ui-state-active"); 
     }) 
     .mouseup(function() { 
      $(this).removeClass("ui-state-active"); 
     }); 
}); 
1

在你当前的代码片段中,$(this)指的是$(document)。试试这个:

$(document).ready(function() { 
    $('.ui-button').hover(function() { 
     $(this).addClass("ui-state-hover"); 
    }, <rest of code omitted> 
} 

现在$(this)指的是$('。ui-button'),这就是你想要的。