0

我正在使用此处的示例向我的网站添加菜单。在原始 HTML 中有一个 div,里面有这个菜单。我对其调用 circleMenu 效果。

            <ul id="container" >
            <li class="ui-state-default">example1
                <!--menu button-->
                <ul class="menu" id="menu6">
                    <li><a href="#"></a></li>
                    <li><a href="#" alt="Edit" title="Edit"><img src="images/edit.jpg" /></a></li>
                    <li><a href="#" alt="Copy" title="Copy"><img src="images/copy.jpg" /></a></li>
                    <li><a href="#" alt="Delete" title="Delete"><img src="images/delete.jpg" /></a></li>
                </ul>
            </li>
        </ul>

                $('.menu').circleMenu({
                direction: 'right',
                circle_radius: 80,
                item_diameter: 20,
                trigger: 'click'
            });

现在,在页面的其他位置,我创建了 example2 列表项和相同的菜单。除了这一次,circleMenu 效果不会附加到它,因为它是刚刚创建的。创建后如何立即应用效果?或修改现有调用以使用当时所有当前的“.menu”项目?

4

2 回答 2

1

使用 jquery .on()

$('.menu').on("load", data, function(event){
    $('.menu').circleMenu({
         direction: 'right',
         circle_radius: 80,
         item_diameter: 20,
         trigger: 'click'
    });
});

您可以在第二个参数中传递数据,或者简单地将其设置为 null。

于 2013-01-16T12:01:22.537 回答
0

您可能会发现 jQuery 的.bind()( .live()is depreciated) 对于向动态创建的元素添加事件很有用。

http://api.jquery.com/bind/

所以,假设你创建了新元素并给它一个 id #example2- 然后你需要.bind()在你的代码中调用这个新创建的元素。

于 2013-01-16T11:27:09.573 回答