我正在尝试保留我的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();
}
});
}
答案 0 :(得分:1)
致电该功能时发送this
:
checkboxRadio(this);
function checkboxRadio(btn) {
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