你能引用一个称为函数的处理程序的元素吗?

时间:2013-05-30 14:52:22

标签: javascript jquery

我通常从不使用这种编程风格,但我想我会尝试一下,所以我知道它是什么。

这是我的输入标签HTML: <input id="Read" type="checkbox" onclick="readClicked()" checked>

我的相关功能:

function readClicked() {
    console.log(this);
    console.log($(this));
    alert('Read Clicked!');
}

无论如何都要引用从函数内部调用readClicked()的处理程序的元素? 类似的东西:

function readClicked() {
    var caller = function.caller;
    var type = $(caller).attr('type');
}

2 个答案:

答案 0 :(得分:3)

this作为参数传递:

onclick="readClicked(this);"

然后你的功能是:

function readClicked(el) {
    var type = $(el).attr('type');
}

虽然,因为你正在使用jQuery,我建议用jQuery绑定事件,而不是内联。像这样:

$("#Read, #OtherElement").on("click", clickHandler);

function clickHandler() {
    var type = $(this).attr("type");
}

DEMO: http://jsfiddle.net/mWLTw/

答案 1 :(得分:3)

<input id="Read" type="checkbox" onclick="readClicked(this)" checked>

function readClicked(elem) {
    console.log(elem);
    console.log($(elem));
    alert('Read Clicked!');
}