如何解决将局部变量传递给点击函数
我想将一个局部变量从一个函数传递给另一个函数,我尝试了一些解决方案,但是它们没有用,因为我有一个click函数,我需要首先将变量放入,而我不怎么做做到这一点,我也在函数外部声明了变量,但是如果我在所有函数外部都没有使用它的所有值,或者在函数 resaltar 中没有任何作用,欢迎任何帮助>
let children=$('div[class^="fila"],div[class^="pieceRow"]' ).children()
var clase
$(children).each(function getClass(){
clase=$(this).attr('class')
$(clase).on('click',function resaltar(){
if (clase==clase) {
$(this).addClass('shadow')
}
})
})
这是HTML代码https://jsfiddle.net/qb5fwcus/
解决方法
请尝试以下代码:
let children = $('div[class^="fila"],div[class^="pieceRow"]' ).children();
$(children).on('click',function(){
var clase = $(this).attr('class');
resaltar(clase);
})
function resaltar(clase){
$('.shadow').removeClass('shadow');
$('.' + clase).addClass('shadow');
}
说明:您不能为任何事件处理程序的回调函数传递任何值。它可以是匿名函数,也可以是不需要任何参数的函数。但是,您可以通过将回调函数设为匿名并从中调用任何函数来实现。这样,您可以传递变量。
PS:让我知道我是否以任何方式弄错了:)
,让我们假设您将其传递给纯JS函数。
function myFunc() {
console.log("My function!");
}
在您的“点击”中,您将调用“ resalter”功能,该功能也在现场定义。
您想调用myFunc,所以:
$(clase).on('click',myFunc())
现在,myFunc不需要变量。我们只传递一个变量:
function myFunc(myVar) {
console.log("Passing a variable of type: " + typeof myVar);
}
现在,只需要在要调用的函数中传递此var。鉴于我之前给出的示例,我们有:
let x = 1; // our variable
$(clase).on('click',myFunc(x))
通过这种方式,您将“ x”作为整数类型的变量传递。以此代码为灵感,尝试实现自己的目标。鉴于我们不知道必须将哪些变量传递给什么函数以及目的是什么,所以给出一个更准确的答案有点困难。
祝你好运!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。