Я создал инструмент javascript, используя плагин beautytips, который использует beautytips для отображения меню параметров списка, с которыми я затем связываю действия.
Я начинаю с простого div, чтобы определить пункты меню
<div id="menu-div">
<a href="javascript:;" id="link-one">text link one</a><br />
<a href="javascript:;" id="link-two">text link two</a><br />
<a href="javascript:;" id="link-three">text link three</a><br />
</div>
, а затем создаем экземпляр подсказки красоты с помощью следующего кода:
$("#menu-toggle").bt({
contentSelector: "$('#menu-div').html()",
preShow: function(box) {
$("a[id^=link-]").click(function() {
//do something
});
});
Я добавил функцию «preShow», потому что по какой-то причине он не находил идентификаторы «link-» до тех пор, пока div не был включен .. (?). Это отлично работает в Firefox, Safari и Chrome, так как я могу щелкнуть переключатель меню, просмотреть три ссылки, щелкнуть первую ссылку и получить правильное действие первой ссылки и т. Д.
Это нормально работает и в Internet Explorer, но только в первый раз. Во второй раз (нажмите, чтобы отобразить меню, нажмите другую ссылку), Internet Explorer не может найти те же идентификаторы.
Нужно ли отменять привязку функции после закрытия меню?
Вот как советы по красоте обрабатывают функцию preShow:
// trigger preShow function
// function receives the box element (the balloon wrapper div) as an argument
opts.preShow.apply(this, [$box[0]]);