检测是否附加了按钮onclick事件

时间:2015-01-06 18:32:30

标签: javascript jquery

我有按钮,我试图通过jquery检测如果按钮附加了点击事件并且有特定消息请隐藏它..

到目前为止,我什么都没有出现:

这是我的代码:

<button name="submit" type="submit" class="iuttons" onclick="alert('The number of pages in your results is too long for us to print.');"><img height="16" alt="Submit" src="mall.png" width="16" align="center"></button>

我正在尝试这样的事情:但不确定如何:

$("#iuttons").on('submit').length() {
   hide the button [same button]
}else{
show the button 
}

这需要在doc准备好的情况下运行,以便它可以知道该做什么

3 个答案:

答案 0 :(得分:0)

我不确定你想要做什么,但如果你试图隐藏点击按钮,请使用:

$('.iuttons').click(function() {
     $(this).hide();
});

答案 1 :(得分:0)

 function hasClickEventAttached(id){
jQuery.each($('#' + id).data('events'), function (i, event) {

            jQuery.each(event, function (i, handler) {

                if(handler.type == 'click') return true;

            });

        });
     return false;
}

现在您可以使用它:

if(hasClickEventAttached('iuttons'))
      alert('onclick event is attached');
else
      alert('onclick event is not attached');

答案 2 :(得分:0)

如果你正在使用jQuery&lt; 1.8.3,你可以使用这样简单的东西:

// your element
var $el = $('.iuttons');

// set listener
$el.on('submit', function() { alert('hi'); });

// check events
var hasListener = !!($el.data('events') || {})['submit'];

// print to console
console.log( "Submit listener: ", hasListener );

因为它与之相关,所以把它放在混合物中;这不是一个充分的答案。

Chrome,Firefox和Safari内置支持名为getEventListeners的功能。 https://developer.chrome.com/devtools/docs/commandline-api#geteventlistenersobject

getEventListeners(myElement);

// output: 
// Object {mouseover: Array[1]}
相关问题