Jquery函数包含外部变量,但不能读取
jquery function include vars from outside, but cant read it
我正在编写一个动态选择集,使用jquery更改选项值…
下面是我的代码:function muestra(nombre) {
$("select#" + nombre).html(output.join(''));
$("div#" + nombre).fadeIn('slow');
};
$("select#fruta").change(function(){
switch ($(this).val()){
case '1':
var siguientesValores = {"0":"-- Seleccione --","1":"Nuez Con Cascara","2":"Nuez Sin Cascara"};
var output = [];
$.each(siguientesValores, function(key, value) {
output.push('<option value="'+ key +'">'+ value +'</option>');
});
/* The old way... works */
$('select#tipoproducto').html(output.join(''));
$("div#tipoproducto").fadeIn('slow');
/***/
muestra(variedad); // new way, not working
break;
case '2': // Almendra > Tipo de Producto
var siguientesValores = {"0":"-- Seleccione --","3":"Laminadas","4":"Partidas - Rayadas","5":"Almendras con Cascara","6":"Almendras sin Cascara"};
var otravar = "probando desde fuera de la funcion";
var output = [];
$.each(siguientesValores, function(key, value) {
output.push('<option value="'+ key +'">'+ value +'</option>');
});
muestra(variedad);
break;
.......
因此,正如我所看到的,函数中的output.join(")不能从case语句传递…
那么,我该怎么做呢?
我认为你误解了内联函数声明和标准函数声明的区别。
在任何编程语言中,都不能重用在其他函数中声明的变量。事实上,当你使用jQuery的内联函数传递你所有的局部变量是因为javascript在你的其他函数中分析你的内联声明的变量,这使得你所有的局部变量就像它们本来是全局的一样。
你的"muestra"函数被声明在你的"change"函数之外,而你的"each"函数在你的"change"函数内,这使得所有的"change"局部变量都可以被"each"函数访问,但肯定不能被"muestra"函数访问。
相关文章:
- JS可以在Chrome中工作,但不能在Firefox中工作
- WebRTC视频聊天可以在FF中使用,但不能在Chrome中使用
- jQuery Datepicker可以在Safari中工作,但不能在FF或Chrome中工作
- 三角库可以与firefox一起使用,但不能在Chrome中使用
- Highcharts可以从服务器加载数据,但不能更新
- 刷新GoogleMaps tile服务器可以使用JavaScript,但不能使用GWT
- node.js可以识别字符模式,但不能识别数字模式
- 如何在元素中处理鼠标事件,但不能在其子元素上处理
- Json到CSV下载,可以在chrome中工作,但不能在IE浏览器中工作
- jQuery$.post可以在chrome、safari中工作,但不能在FF中工作(声明成功回调函数未定义)
- Javascript可以在chrome中使用,但不能在其他浏览器中使用
- Iframe加载调整大小在Chrome中工作,但不能在IE或Firefox中工作
- Rails Production-可以工作,但不能编辑/删除/创建记录
- 能够在Highcharts中看到值,但不能看到图形
- Django,HTML,JS:<img src=“#">可以在HTML中工作,但不能在JS文件中工作
- 通过Javascript SDK登录Facebook可以在移动设备和本地主机上使用,但不能在台式机上使用
- jQuery/Javascript函数可以在Chrome中使用,但不能在IE11中使用
- localStorage保存对象,但不能读取其内容
- Jquery函数包含外部变量,但不能读取
- 棱角火 - $firebaseArray可以$add但不能读取