Jquery变量作为对象返回
我试图将一个变量从一个函数传递到另一个函数,但是var elmId作为一个对象返回,并给出了一个错误。当我们点击任何生成的div时,我们应该能够通过从下拉菜单中选择宽度/高度值来更改div的大小 我正在尝试将单击的div id(即elmId)传递给函数displayVals,但它不起作用。如果我们将函数displayVals中的“#”+elmId替换为使用is“#divid1”创建的第一个div的实际id,则它可以工作。为什么var elmId的值没有传递给displayValsJquery变量作为对象返回,jquery,object,var,Jquery,Object,Var,我试图将一个变量从一个函数传递到另一个函数,但是var elmId作为一个对象返回,并给出了一个错误。当我们点击任何生成的div时,我们应该能够通过从下拉菜单中选择宽度/高度值来更改div的大小 我正在尝试将单击的div id(即elmId)传递给函数displayVals,但它不起作用。如果我们将函数displayVals中的“#”+elmId替换为使用is“#divid1”创建的第一个div的实际id,则它可以工作。为什么var elmId的值没有传递给displayVals <lin
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/themes/base/jquery-ui.css" type="text/css" media="all" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js" type="text/javascript"></script>
<style>
.aaa{width:100px; height:100px; background-color:#ccc;}
button{width:100px; height:20px;}
</style>
<button class="idiv">div</button>
<select id="width">
<option>100px</option>
<option>200px</option>
<option>300px</option>
</select>
<select id="height">
<option>100px</option>
<option>200px</option>
<option>300px</option>
</select>
<p></p>
<script type="text/javascript">
var divId = 1;
$("button").click(function(){
var elm = $('<div id=divid' + divId + ' class=aaa></div>');
elm.appendTo('p');
divId++;
});
$("p").click(function(e){
var elmType = $(e.target)[0].nodeName,
elmId = $(e.target)[0].id;
return displayVals(elmId);
});
function displayVals(elmId) {
var iwidth = $("#width").val();
var iheight = $("#height").val();
$("#"+elmId).css({width:iwidth, height:iheight});
console.log(elmId);
}
$("select").change(displayVals);
displayVals();
</script>
.aaa{宽度:100px;高度:100px;背景色:#ccc;}
按钮{宽度:100px;高度:20px;}
div
100px
200px
300px
100px
200px
300px
var-divId=1;
$(“按钮”)。单击(函数(){
var elm=$('');
elm.appendTo('p');
divId++;
});
$(“p”)。单击(功能(e){
var elmType=$(e.target)[0]。节点名,
elmId=$(e.target)[0].id;
返回显示值(elmId);
});
函数显示值(elmId){
var iwidth=$(“#宽度”).val();
var iheight=$(“#高度”).val();
$(“#”+elmId).css({width:iwidth,height:iheight});
console.log(elmId);
}
$(“选择”).change(displayVals);
displayVals();
CSS:
jQuery:
<script type="text/javascript">
var divId=1,selecteddiv="";
$("button").click(function(){
$('p').append('<div id="divid'+divId+'" class="divs"></div>');
divId++;
});
$(".divs").live("click",function(){
selecteddiv=$(this).attr('id');
$(this).addClass('selected');
return false;
});
function displayVals() {
if(selecteddiv!=""){
var iwidth = $("#width").val();
var iheight = $("#height").val();
$("#"+selecteddiv).css({width:iwidth, height:iheight});
}
}
$("select").change(displayVals);
displayVals();
</script>
var divId=1,selecteddiv=“”;
$(“按钮”)。单击(函数(){
$('p')。附加('');
divId++;
});
$(“.divs”).live(“单击”,函数(){
selecteddiv=$(this.attr('id');
$(this.addClass('selected');
返回false;
});
函数displayVals(){
如果(选择了四个!=“”){
var iwidth=$(“#宽度”).val();
var iheight=$(“#高度”).val();
$(“#”+selecteddiv).css({宽度:iwidth,高度:iheight});
}
}
$(“选择”).change(displayVals);
displayVals();
- 按钮将创建
divid[X]
- 当您动态生成它们时,您需要在
活动中
(因为当
单击
事件被附加到类
时,它们不存在).divs
- 单击其中一个
将在.div
selecteddiv
- 只是为了向您显示所选的
。所选的
类将添加到此div
- 当您更改值时,
事件将启动,如果selecteddiv不为空,则它将更改宽度和高度.change
- 您可以删除最后一行
displayVals()代码>因为在开始时没有创建任何div
G.FYI,无需执行
$(e.target)[0].id代码>。当您这样做时,您将元素放入jQuery对象中,然后将其直接拉出。只需执行e.target.id
。太好了,可以了。我知道你做了什么。你能解释一下return false的用途吗?对不起,旧习惯,你可以删除它,它会阻止在你添加“连按”锚定时的默认操作调用(在这种情况下不相关):)var selecteddiv=和seleceddiv之间的区别是什么?如果您在函数外部使用var name,您可以从内部为其设置值,只要您不再使用var name,例如在函数内部,抱歉,有点让人困惑,但我现在正在用我的iPhone写:)我在这里用了一行来设置两个全局变量,但这与我用coma分隔它们是一样的,可以使用var divid=1;var selecteddiv=“”;干杯
<script type="text/javascript">
var divId=1,selecteddiv="";
$("button").click(function(){
$('p').append('<div id="divid'+divId+'" class="divs"></div>');
divId++;
});
$(".divs").live("click",function(){
selecteddiv=$(this).attr('id');
$(this).addClass('selected');
return false;
});
function displayVals() {
if(selecteddiv!=""){
var iwidth = $("#width").val();
var iheight = $("#height").val();
$("#"+selecteddiv).css({width:iwidth, height:iheight});
}
}
$("select").change(displayVals);
displayVals();
</script>