Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.07.2014, 22:24
Vit Vit вне форума
Аспирант
Отправить личное сообщение для Vit Посмотреть профиль Найти все сообщения от Vit
 
Регистрация: 11.01.2012
Сообщений: 56

menuitem. Узнать по какому элементу кликнули
Всем доброго. Есть меню:
<menu type="context" id="cellpopup"> 
   <menuitem label="Set NULL" onclick="SelNULL(this)"></menuitem> 
  </menu>

Это меню определено для каждой ячейки некой таблицы.
В зависимоти от того по какой ячейке я кликну вызвав меню нужно выполнять разные действия.
Вопрос: Как в SelNULL() передать при клике ячейку (или в принципе объект), по которой кликнули?
Ответить с цитированием
  #2 (permalink)  
Старый 28.07.2014, 22:47
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Vit, где код?
Ответить с цитированием
  #3 (permalink)  
Старый 28.07.2014, 23:09
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от Vit
Как в SelNULL() передать при клике ячейку (или в принципе объект), по которой кликнули?
this, который Вы уже передаете, это и будет ссылка на элемент menuitem, по которому кликнули.
Ответить с цитированием
  #4 (permalink)  
Старый 29.07.2014, 10:17
Vit Vit вне форума
Аспирант
Отправить личное сообщение для Vit Посмотреть профиль Найти все сообщения от Vit
 
Регистрация: 11.01.2012
Сообщений: 56

Сообщение от Rise Посмотреть сообщение
Vit, где код?
Какой код?
Цитата:
this, который Вы уже передаете, это и будет ссылка на элемент menuitem, по которому кликнули.
а мне нужно получить элемент страницы над которым было вызвано контекстное меню.
Ответить с цитированием
  #5 (permalink)  
Старый 29.07.2014, 14:17
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Vit
Как в SelNULL() передать при клике ячейку (или в принципе объект), по которой кликнули?
можно ничего не передавать:
event.target
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #6 (permalink)  
Старый 29.07.2014, 14:48
Vit Vit вне форума
Аспирант
Отправить личное сообщение для Vit Посмотреть профиль Найти все сообщения от Vit
 
Регистрация: 11.01.2012
Сообщений: 56

Сообщение от nerv_ Посмотреть сообщение
можно ничего не передавать:
event.target
А можно пример небольшой?
Обычно я event передаю в обработчик, а как не передавать?
Если имеется ввиду такое:
function SetNULL(me){
 alert(window.event.target);
}

то это не срабатывает.
Если же я пишу так:
<menu type="context" id="cellpopup"> 
   <menuitem label="Set NULL" onclick="SetNULL(event.target)"></menuitem> 
  </menu>

То мне в параметр все равно приходит [object HTMLMenuItemElement]
Ответить с цитированием
  #7 (permalink)  
Старый 29.07.2014, 14:55
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Vit,
Сообщение от Vit
а мне нужно получить элемент страницы над которым было вызвано контекстное меню.
Вам не кажется, что это не совсем то, о чем спрашивалось изначально?
Сообщение от Vit
Как в SelNULL() передать при клике ячейку (или в принципе объект), по которой кликнули?
Тут вижу два варианта:
либо зависимость от верстки (клик по меню - поиск нужного парента - поиск элемента)
либо идентификаторами связывать элемент и меню, которое вызывается.
Ответить с цитированием
  #8 (permalink)  
Старый 29.07.2014, 16:52
Vit Vit вне форума
Аспирант
Отправить личное сообщение для Vit Посмотреть профиль Найти все сообщения от Vit
 
Регистрация: 11.01.2012
Сообщений: 56

Ладно, уточню: Каждая клетка таблицы олицетворяет собой поле записи в таблице БД. Я хочу сделать установку поля в NULL. Мне (это для меня) было бы очень удобно делать это в контекстном меню, поэтому задача состоит в том, чтоб функции SetNULL() передать ID записи (хранится в атрибутах TR тега) и имя поля (хранится соответственно в атрибутах TD). Но чтоб передать в процедуру эти данные мне нужно знать по какой именно клетке щелкнули ПКМ, вызвав меню.
Цитата:
клик по меню - поиск нужного парента - поиск элемента
Но тогда как получается что мне в каждую клетку нужно пихать меню.
Ответить с цитированием
  #9 (permalink)  
Старый 29.07.2014, 18:01
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Vit,
<menu type="context" id="cellpopup">
	<menuitem label="Set NULL" onclick="SelNULL()"></menuitem>
</menu>

<table id="table" border="1">
	<tr>
		<td contextmenu="cellpopup">11111</td>
		<td contextmenu="cellpopup">22222</td>
		<td contextmenu="cellpopup">33333</td>
	<tr>
</table>

<script>
var thisCell;
table.oncontextmenu = function(e) { thisCell = e.target };
function SelNULL() { alert(thisCell.innerHTML) }
</script>
Ответить с цитированием
  #10 (permalink)  
Старый 29.07.2014, 22:33
Vit Vit вне форума
Аспирант
Отправить личное сообщение для Vit Посмотреть профиль Найти все сообщения от Vit
 
Регистрация: 11.01.2012
Сообщений: 56

О! Спасибо.
Толчок в нужном направлении получен - задача решена.
Мои благодарности.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать по какой ссылке кликнули? Rooner jQuery 3 19.12.2012 17:14
Как узнать куда кликнули при blur kolyan1983 Events/DOM/Window 22 14.08.2012 19:26
Как узнать на какой ссылке кликнули Rush_e jQuery 1 02.11.2009 20:08