从jQuery处理程序获取事件默认处理程序的结果

时间:2013-06-06 11:41:28

标签: javascript jquery javascript-events

假设有一个带有onclick事件的DIV元素:

<div onclick="return 'Hello world'"></div>

现在我想从委派的jQuery事件中获取这个'Hello world'字符串:

$('body').delegate('div', 'click', function(event){
    var s = ...; // Now s is 'Hello world'
});

有可能吗?

我需要这个作为复杂IE错误的解决方法,因此只有IE的解决方案才能实现。

P.S。对于那些想知道的人:bug是在IE8文档模式下,即使在anchor的“onclick”处理程序中有“return false”,IE10也会跟随FORM元素中的链接。

2 个答案:

答案 0 :(得分:1)

var s = this.onclick();会做到这一点,虽然目前还不清楚你想要实现的目标......

答案 1 :(得分:0)

对您的代码稍加修改:

<div onclick="alert('Hello world');">Hello World</div>

$('body').delegate('div', 'click', function(e) {
    e.preventDefault();
    exec($(this).attr('onclick'));
});

JSFiddle:http://jsfiddle.net/y7ABJ/

另一种选择,因为它不清楚你的目标是什么:

<div data-my-text="Hello world">Hello World</div>

$('body').delegate('div', 'click', function(e) {
    e.preventDefault();
    var s = $(this).data('myText');
    alert(s);
});