在jquery中绑定事件的更好方法

时间:2011-08-03 13:03:20

标签: jquery

我有一个页面,我有很多控件,然后我有一个div元素,并在div元素中有10个asp按钮。

我想将mousehover事件绑定到div元素内的那些按钮。

目前我这样做:

<script src="jquery-1.6.2.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $("#MangoPager_btn1").hover(mousehoverfunction);
            $("#MangoPager_btn2").hover(mousehoverfunction);
            $("#MangoPager_btn3").hover(mousehoverfunction);
            $("#MangoPager_btn4").hover(mousehoverfunction);
            $("#MangoPager_btn5").hover(mousehoverfunction);
            $("#MangoPager_btn6").hover(mousehoverfunction);
            $("#MangoPager_btn7").hover(mousehoverfunction);
            $("#MangoPager_btn8").hover(mousehoverfunction);
            $("#MangoPager_btn9").hover(mousehoverfunction);
            $("#MangoPager_btn10").hover(mousehoverfunction);
        }); 
</script>

在jquery中是否存在任何方式,以便我可以声明类似[MangoPager_btn10,MangoPager_btn2,MangoPager_btn3]的按钮ID列表,这样我就不必为每个按钮ID执行此操作。

我尝试使用input类型但是它将所有输入类型对象的函数应用于div elemet中的按钮。

任何其他更好的方式在jquery中执行.... 我

7 个答案:

答案 0 :(得分:1)

试试这个:

$(function(){
  $("[id^='MangoPager_btn']").hover(mousehoverfunction);
})

答案 1 :(得分:1)

$('#DivElementId input').hover(mousehoverfunction);

答案 2 :(得分:1)

您可以简单地为所需的输入提供一个类:

$(".mouse-over").hover(mousehoverfunction);

或者如果您只有几个ID:

$("#MangoPager_btn1, #MangoPager_btn2, #MangoPager_btn3").hover(mousehoverfunction);

答案 3 :(得分:0)

$(“#MangoPager button”)。悬停(mousehoverfunction);

将函数绑定到父div,然后将所有按钮绑定到这样。假设MagoPager是父div的id。

$(“#MangoPager input [type =]”)。hover(mousehoverfunction);

答案 4 :(得分:0)

尝试这样的事情:

$(".containerclass input[type=submit]").hover(mousehoverfunction);

这会将函数绑定到容器内的所有按钮(css)class =“containerclass”

答案 5 :(得分:0)

我建议使用委托:http://api.jquery.com/delegate/,因为它会为所有元素的一个或多个事件附加处理程序

答案 6 :(得分:0)

在这种情况下,我使用带有regexp的过滤器http://api.jquery.com/filter/

$("input").filter(function()
{
return /MangoPager_btn/.test(this.id)
}).hover(mousehoverfunction);