我对Javascript和HTML很陌生,所以我怀疑我犯了一个菜鸟错误,但我似乎无法弄明白。
我的html
文档中有一个下拉菜单,当按下它旁边的按钮时,我想使用svg
绘制正多边形并将其添加到div
。不幸的是,我一直得到意想不到的令牌"在第二行的花括号上。这是js代码:
$(document).ready(function(){
$('#pull-me').click(function(){
$('.panel').slideToggle('slow');
})
$('.polygon').function(){
$('#updatebutton').click(function(){
var n = parseInt($('#nvalue').val());
var coords = '';
for (i=0; i< n; i++){
coords += (250 + 225*Math.sin(2*Math.PI*i/n)).toString() + ',' + (250 + 225*Math.cos(2*Math.PI*i/n)).toString() + ',';
};
coords = coords.substring(0,coords.length - 1);
)};
var $drawing = '<svg height="500" width="500" id="shape"> <!-- The center of the polygon is at the point 250,250 --> <polygon points=' +coords+ 'style="fill:#FFF;stroke:#000;stroke-width:3" /> Sorry, your browser does not support inline SVG. </svg>';
$('.polygon').append($drawing);
}
)};
有谁可以解释发生了什么?
更新:以下是一些HTML代码:
<div class='n-and-operations'>
<h4>Select a value of n</h4>
<select id='nvalue'>
<option> 3 </option>
<option> 4 </option>
<option> 5 </option>
<option> 6 </option>
<option> 7 </option>
<option> 8 </option>
</select>
<button id='updatebutton'> Update </button>
</div>
<div class='polygon'>
</div>
答案 0 :(得分:2)
我们可以在html对象上编写事件处理程序,但是我们不能像你在$('.polygon')
对象上那样在html对象上调用plain function(),因为它根本不会调用,所以{{1错误。
其次是你在click事件函数中初始化了变量unexpected token
,但试图在函数外部访问。
尝试使用以下代码
coords
希望它会对你有所帮助:)。
答案 1 :(得分:1)
因为您无法在function()
对象上调用普通$('.polygon')
。摆脱第二行代码及其结束括号,因为它没有做任何事情......
答案 2 :(得分:1)
看起来根本不需要第二行,并且在最后一行上与它相关联的括号。
点击处理程序代码仅在执行点击时被调用,因此这不是问题。