如何使用jquery检查哪些元素与它们绑定了哪些元素?

时间:2010-01-25 22:58:42

标签: jquery

我想知道我的页面中哪些元素是可点击的,这意味着它们要么具有href属性(易于检查),要么通过JS将它们绑定到它们。有没有办法这样做?

2 个答案:

答案 0 :(得分:2)

使用针对此问题提供的解决方案:How to debug JavaScript/jQuery event bindings with Firebug (or similar tool)

我认为这可能是你所需要的:

<html>
<head>
   <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.min.js" type="text/javascript"></script
</head>
<body>
    <a href="test">test link</a>
    <span>test span</span>
<script type="text/javascript">
$.fn.listHandlers = function(events, outputFunction) {
    return this.each(function(i){
        var elem = this,
            dEvents = $(this).data('events');
        if (!dEvents) {return;}
        $.each(dEvents, function(name, handler){
            if((new RegExp('^(' + (events === '*' ? '.+' : events.replace(',','|').replace(/^on/i,'')) + ')$' ,'i')).test(name)) {
               $.each(handler, function(i,handler){
                   outputFunction(elem, '\n' + i + ': [' + name + '] : ' + handler );
               });
           }
        });
    });
};


$("span").click(function(){ alert("test");});

var clickableObjects = [];
$(document).ready(function(){
    $('*').listHandlers('click',function(element,data){
        clickableObjects.push(element);
    }).filter("a").each(function(index, value){
        clickableObjects.push(value);
    });

});


</script>
</body>
</html>

答案 1 :(得分:0)

为什么不将.clickable类分配给具有href属性的元素,并确保在.bind()它们时也为项目分配.clickable类?