Прежде всего:
$("body").click(function(e){
if(e.target.className !== "actions_image")
{
$(".actions_image").next().hide();
}
});
стоит отдельно, поэтому не обязательно быть в этой функции - которая мне кажется добавляет этот обработчик каждый раз, когда вы щелкаете изображение. Так что я бы поставил его вне обработчика щелчка для изображения.
Второй,
section_actions_menu: function(event){ ...
с конкретным:
onclick="section_actions_menu(event);"
вместе - это то же самое, что и
$('.actions_image').click(function(e){
});
ТАК, я бы удалил onclick = ... и переключился на конкретный обработчик jQuery, который отделяет разметку от поведения (вообще никакого вызова функции click для элемента, это все в коде).
Тогда мы можем обработать событие для клика.
ТАК, я получаю этот скрипт:
$(document).ready(function()
{
$("body").click(function(e)
{
if (e.target.className !== "actions_image")
{
$(".actions_image").next().hide();
};
});
$('.actions_image').click(function(e)
{
if (e.target.next().is(':visible'))
{
$(".actions_image").next().hide();
}
else
{
$(".actions_image").next().hide(); //hides all menus if any showing
e.target.next().show();//shows this specific one.
};
});
});
Примечание:
это:
$(".actions_image").next().hide();
также может быть:
$(".actions_image").next('.toggle').hide();
чтобы использовать свой класс