Javascript 当给定可变变量错误时,如何访问正确的变量
我正在遍历几个Javascript 当给定可变变量错误时,如何访问正确的变量,javascript,jquery,Javascript,Jquery,我正在遍历几个元素并初始化所见即所得编辑器。 守则: for( var i = 0; i <= 2; i++ ){ $( '#textarea' + i ).wysihtml5({ "events": { "change": function() { console.log( i ); // Can't access i here } } }); } for(
元素并初始化所见即所得编辑器。
守则:
for( var i = 0; i <= 2; i++ ){
$( '#textarea' + i ).wysihtml5({
"events": {
"change": function() {
console.log( i ); // Can't access i here
}
}
});
}
for(var i=0;i这可能是因为更改是在循环完成后异步执行的。要在另一个作用域中获取i的副本,请执行以下操作:
var doStuff = function(i){
$( '#textarea' + i ).wysihtml5({
"events": {
"change": function() {
console.log( i ); // Can't access i here
}
}
});
}
for( var i = 0; i <= 2; i++ ){
doStuff(i);
}
var doStuff=函数(i){
$('#textarea'+i).wysihtml5({
“事件”:{
“更改”:函数(){
console.log(i);//无法在此处访问i
}
}
});
}
对于(var i=0;i这可能是因为在循环完成后异步执行更改。要在另一个作用域中获取i的副本,请执行以下操作:
var doStuff = function(i){
$( '#textarea' + i ).wysihtml5({
"events": {
"change": function() {
console.log( i ); // Can't access i here
}
}
});
}
for( var i = 0; i <= 2; i++ ){
doStuff(i);
}
var doStuff=函数(i){
$('#textarea'+i).wysihtml5({
“事件”:{
“更改”:函数(){
console.log(i);//无法在此处访问i
}
}
});
}
对于(var i=0;i这可能是因为在循环完成后异步执行更改。要在另一个作用域中获取i的副本,请执行以下操作:
var doStuff = function(i){
$( '#textarea' + i ).wysihtml5({
"events": {
"change": function() {
console.log( i ); // Can't access i here
}
}
});
}
for( var i = 0; i <= 2; i++ ){
doStuff(i);
}
var doStuff=函数(i){
$('#textarea'+i).wysihtml5({
“事件”:{
“更改”:函数(){
console.log(i);//无法在此处访问i
}
}
});
}
对于(var i=0;i这可能是因为在循环完成后异步执行更改。要在另一个作用域中获取i的副本,请执行以下操作:
var doStuff = function(i){
$( '#textarea' + i ).wysihtml5({
"events": {
"change": function() {
console.log( i ); // Can't access i here
}
}
});
}
for( var i = 0; i <= 2; i++ ){
doStuff(i);
}
var doStuff=函数(i){
$('#textarea'+i).wysihtml5({
“事件”:{
“更改”:函数(){
console.log(i);//无法在此处访问i
}
}
});
}
对于(var i=0;i这将起作用。您需要做的是定义一个新的作用域,其中i
变量不变
for( var i = 0; i <= 2; i++ ){
(function(i) {
$( '#textarea' + i ).wysihtml5({
"events": {
"change": function() {
console.log(i);
}
}
});
})(i);
}
for(var i=0;i这将起作用。您需要做的是定义一个新的作用域,其中i
变量不变
for( var i = 0; i <= 2; i++ ){
(function(i) {
$( '#textarea' + i ).wysihtml5({
"events": {
"change": function() {
console.log(i);
}
}
});
})(i);
}
for(var i=0;i这将起作用。您需要做的是定义一个新的作用域,其中i
变量不变
for( var i = 0; i <= 2; i++ ){
(function(i) {
$( '#textarea' + i ).wysihtml5({
"events": {
"change": function() {
console.log(i);
}
}
});
})(i);
}
for(var i=0;i这将起作用。您需要做的是定义一个新的作用域,其中i
变量不变
for( var i = 0; i <= 2; i++ ){
(function(i) {
$( '#textarea' + i ).wysihtml5({
"events": {
"change": function() {
console.log(i);
}
}
});
})(i);
}
(变量i=0;i)的