如何获取事件源元素

时间:2016-12-29 23:42:43

标签: javascript jquery function variables

我正在尝试保留我的JS模块以便于阅读和推广,但是我无法获得$(this)的{​​{1}}来定义变量checkboxButton.on("click")

如何在函数()中创建一个全局变量(如果这是放置它的正确方法)?

checkboxSelected
var checkboxButton = $("[data-checkbox-id]"),
    checkboxContainer = checkboxButton.parent();

function checkboxRadio() {

    var checkboxSelected = $(this).attr("data-checkbox-id");
    console.log(checkboxSelected);

    checkboxSelected.attr("aria-checked","true");

    if (!$('[data-checkbox-id="' + checkboxSelected +'"]')) {
        checkboxButton.attr("aria-checked","false");
    }
}


function checkboxInit() {
    console.log("Checkbox Initialised");

    checkboxButton.on("touchend click", function(e) {
        e.preventDefault();

        // Check the checkbox type
        if (checkboxContainer.attr("data-checkbox-type") == "radio") {
            checkboxRadio();
        } else {
            // checkboxMultiple();
        }
    });

}

2 个答案:

答案 0 :(得分:1)

致电该功能时发送this

  1. checkboxRadio(this);
  2. function checkboxRadio(btn) {
  3. var checkboxSelected = $(btn).attr("data-checkbox-id");

答案 1 :(得分:0)

您可以在调用之前始终使用bind方法:

this

基本上它的作用是:你对调用checkboxRadio.bind(this)();变量的上下文的方法说。

因此,当您执行checkboxRadio时,方法this将知道UIApplication.shared.preferredContentSizeCategory变量是您刚刚点击的按钮。

有关bind方法的更多信息,请在此处找到:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind