Не работает событие.
Помогите. Не работает событие
$(del).delegate( 'click', function(){ alert('Привет я DEL'); }); Все пробывал. .live .on .delegate ничего не помогает.:help: document.oncontextmenu = function() {return false;}; $(document).ready(function() { $(document).mousedown(function(event) { $('.context-menu').remove(); if (event.which === 3) { var target = $(event.target); var add = '<li><a clas="add" href="#">Добавить таблицу</a></li>'; var del = '<li><a class="del" href="#">Удалить таблицу</a></li>'; $('<body>', {class: 'context-menu'}).css({ left: event.pageX+'px', top: event.pageY+'px' }) .appendTo('table') .append( $('<ul/>') .append(add) .append(del) ) .show('fast'); $(del).delegate( 'click', function(){ alert('Привет я DEL'); }); } }); }); |
В jQuery обратиться к элементу можно через id, класс, имя тэга, или через ссылку на элемент (как в примере ниже).
А Вы в del присваиваете структуру, которая не является ничем из вышеперечисленного. Используйте обёртку jQuery для создания элемента, раз уж юзаете фрэймворк: Посмотреть var del = $('<li><a class="del" href="#">Удалить таблицу</a></li>'); del.appendTo('body'); del.children('.del').on('click', function(){ alert('Привет, я Del'); }); Или (если не нужно в дальнейшем ссылаться на элемент по ссылке в переменной) обращайтесь к элементу по классу: Посмотреть $('<li><a class="del" href="#">Удалить таблицу</a></li>').appendTo('body'); $('.del').on('click', function(){ alert('Привет, я Del'); }); |
<body> <table border="1"> <tr id="one"> <td>Table</td> <td>Table</td> <td>Table</td> <td>Table</td> <td>Table</td> </tr> <tr id="two"> <td>Table</td> <td>Table</td> <td>Table</td> <td>Table</td> <td>Table</td> </tr> </table> </body> table { margin: 0 auto; } tr:hover { background: aqua; } /* Класс контекстного меню: */ .context-menu { position: absolute; display: none; background-color: #fff; border: 1px solid #333; -moz-box-shadow: -5px 2px 10px rgba(0,0,0,0.5); -webkit-box-shadow: -5px 2px 10px rgba(0,0,0,0.5); box-shadow: -5px 2px 10px rgba(0,0,0,0.5); } .context-menu ul { list-style: none; margin: 0; padding: 0; } .context-menu ul li { margin: 0; padding: 0; background-color: #fff; display: block; } .context-menu ul li a { color: #333; text-decoration: none; font-size: 12px; display: block; padding: 5px; } .context-menu ul li a:hover { background-color: #eee; } |
farand_777,
Обновите страницу и перечитайте моё предыдущее сообщение. Добавил примеры. |
Спасибо. Буду пробывать
|
farand_777,
Ещё один момент. Если используете ссылку как контроллер (без перехода), то вместо <a class="del" href="#">Удалить таблицу</a>можно использовать css: Посмотреть .del { cursor:pointer; text-decoration:underline; color:blue; } <a class="del">Удалить таблицу</a>Визуально она будет выглядеть как обычная ссылка, но при этом в адресной строке не будет добавляться хэш (#) |
Часовой пояс GMT +3, время: 01:21. |