使用函数时Jquery意外的标记

时间:2017-06-11 14:30:24

标签: javascript jquery html svg

我对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>

3 个答案:

答案 0 :(得分:2)

我们可以在html对象上编写事件处理程序,但是我们不能像你在$('.polygon')对象上那样在html对象上调用plain function(),因为它根本不会调用,所以{{1错误。

其次是你在click事件函数中初始化了变量unexpected token,但试图在函数外部访问。

尝试使用以下代码

coords

希望它会对你有所帮助:)。

答案 1 :(得分:1)

因为您无法在function()对象上调用普通$('.polygon')。摆脱第二行代码及其结束括号,因为它没有做任何事情......

答案 2 :(得分:1)

看起来根本不需要第二行,并且在最后一行上与它相关联的括号。

点击处理程序代码仅在执行点击时被调用,因此这不是问题。