您好,有人可以告诉我为什么这段代码不正确?我正在尝试将两个变量值传递给函数。
$( "#resizable-text1, #resizable-text2" ).draggable({
containment: "#containment-wrapper1",
scroll: false,
stop: function(event, ui)
{
var id = $(this).attr('data-idSuffix');
adjust_pos($('#resizable-text',id));
}
});
function adjust_pos(elem, id) {
alert('elem = '+elem)
alert('id = '+id)
var currentPos = $("#"+elem+id).position()
var xpos = parseInt(currentPos.left)
var ypos = parseInt(currentPos.top)
then use variables ele and id...
}
任何帮助表示感谢。
答案 0 :(得分:2)
您不需要将字符串包装在jQuery $()
函数中,因为在您的函数中,无论如何都会这样做($("#"+elem+id).position()
)。只需发送字符串。
所以这应该有效:
adjust_pos('#resizable-text', id);
编辑此外,无论是在您的函数adjust_pos
中,还是在您传递的参数中,都应删除#
,否则会有两个。{1}}我建议你在函数中删除,所以如果由于某种原因你想发送一个类选择器,你也可以这样做。
var currentPos = $(elem+id).position();
答案 1 :(得分:1)
根据您adjust_pos
函数的代码,它就像是adjust_pos('resizable-text', id);
答案 2 :(得分:1)
看起来您的第二个结束括号位置错误:
adjust_pos($('#resizable-text'),id);
<强>更新强>
正如评论中指出的那样,根据您的函数对参数的作用,实际上并不需要传入jQuery对象。您只需要将元素的id作为字符串传递。
根据您当前的代码,您可以这样做:
adjust_pos('resizable-text',id);
或者对japrescott推荐的代码进行调整(从函数中删除散列并将其作为参数的一部分传递):
adjust_pos('#resizable-text',id);
答案 3 :(得分:0)
这一行;
adjust_pos($('#resizable-text',id));
一定是这样的;
adjust_pos($('#resizable-text'),id);