Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.08.2017, 20:17
Аспирант
Отправить личное сообщение для WarDoctor Посмотреть профиль Найти все сообщения от WarDoctor
 
Регистрация: 02.01.2015
Сообщений: 32

Застрял на простом
Есть набор элементов input. Необходимо при клике на любом, независимо от типа элемента, в поле data-debug вывести его значение data-fname или id.
<input type="text" data-fname="number" id="acc_number"><br>
<input type="text" data-fname="date" id="acc_date"><br>
<input type="text" data-fname="name" id="acc_munit"><br>
<input type="text" data-fname="dislt" id="acc_tlocal"><br>
<input type="text" data-fname="disln" id="acc_loc"><br>
<input type="text" data-fname="disla" id="acc_obl"><br>
<input type="text" data-fname="objects" id="acc_objects"><br>
<input type="text" data-fname="laborators" id="acc_laborators"><br>
<input type="text" data-fname="types" id="acc_types"><br>
<input type="text" data-fname="materials" id="acc_materials"><br>
<input type="text" data-fname="study" id="acc_study">
<hr>
<div data-debug> Data-Fname / ID </div>

var acc_id = '';
$( '[id^="' + prefix_acc + '"]' ).live('click', function() {
	var acc_id = $( this ).attr( "id" );
  return acc_id;
});
$( "[data-debug]" ).text( acc_id );

PS: просьба сильно не ругаться... сам знаю что затупил
Ответить с цитированием
  #2 (permalink)  
Старый 26.08.2017, 20:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

WarDoctor,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
var prefix_acc = 'acc_';
$( '[id^="' + prefix_acc + '"]' ).on('click', function() {
$( "[data-debug]" ).text( [this.dataset.fname, this.id].join(' / ') );
});


});
  </script>
</head>

<body>
<input type="text" data-fname="number" id="acc_number"><br>
<input type="text" data-fname="date" id="acc_date"><br>
<input type="text" data-fname="name" id="acc_munit"><br>
<input type="text" data-fname="dislt" id="acc_tlocal"><br>
<input type="text" data-fname="disln" id="acc_loc"><br>
<input type="text" data-fname="disla" id="acc_obl"><br>
<input type="text" data-fname="objects" id="acc_objects"><br>
<input type="text" data-fname="laborators" id="acc_laborators"><br>
<input type="text" data-fname="types" id="acc_types"><br>
<input type="text" data-fname="materials" id="acc_materials"><br>
<input type="text" data-fname="study" id="acc_study">
<hr>
<div data-debug> Data-Fname / ID </div>

</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 26.08.2017, 21:23
Аспирант
Отправить личное сообщение для WarDoctor Посмотреть профиль Найти все сообщения от WarDoctor
 
Регистрация: 02.01.2015
Сообщений: 32

рони, спасибо.
желательно чтобы выводилось что-то одно. подскажите каким образом это сделать?
Переменная acc_id в последующем коде должна быть использована, поэтому проверка ее значения и вынесена за пределы обработчика т.к. есть функции где с этой переменной будут произведены преобразования

извините за вредность
Ответить с цитированием
  #4 (permalink)  
Старый 26.08.2017, 21:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

WarDoctor,
Сообщение от WarDoctor
желательно чтобы выводилось что-то одно

$( "[data-debug]" ).text( [this.dataset.fname, this.id].join(' / ') );

заменить на
$( "[data-debug]" ).text( this.dataset.fname );

или на
$( "[data-debug]" ).text(  this.id);

Ответить с цитированием
  #5 (permalink)  
Старый 27.08.2017, 00:22
Аспирант
Отправить личное сообщение для WarDoctor Посмотреть профиль Найти все сообщения от WarDoctor
 
Регистрация: 02.01.2015
Сообщений: 32

Сообщение от рони Посмотреть сообщение
WarDoctor,


$( "[data-debug]" ).text( [this.dataset.fname, this.id].join(' / ') );

заменить на
$( "[data-debug]" ).text( this.dataset.fname );

или на
$( "[data-debug]" ).text(  this.id);

спасибо. так понятнее.
как реализовать основную мысль: переменная acc_id и результат обработчика должны быть доступны за пределами самого обработчика т.к. в последующем возвращённое обработчиком значение переменной используется в другом месте кода
именно с этим проблема
Ответить с цитированием
  #6 (permalink)  
Старый 27.08.2017, 10:41
Аспирант
Отправить личное сообщение для WarDoctor Посмотреть профиль Найти все сообщения от WarDoctor
 
Регистрация: 02.01.2015
Сообщений: 32

Решение найдено.
Спасибо за помощь в нахождении решения.
var prefix_acc = 'acc_';
$(function() {
  $('[id^="' + prefix_acc + '"]').click(function() {
    var id_acc = $(this).attr("id");
    //var id_acc = $(this).data("fname");
    MyFunction(id_acc);
  });

  function MyFunction(inp_id) {
    //код выполнения
    $("[data-debug]").text(inp_id);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" data-fname="number" id="acc_number"><br>
<input type="text" data-fname="date" id="acc_date"><br>
<input type="text" data-fname="name" id="acc_munit"><br>
<input type="text" data-fname="dislt" id="acc_tlocal"><br>
<input type="text" data-fname="disln" id="acc_loc"><br>
<input type="text" data-fname="disla" id="acc_obl"><br>
<input type="text" data-fname="objects" id="acc_objects"><br>
<input type="text" data-fname="laborators" id="acc_laborators"><br>
<input type="text" data-fname="types" id="acc_types"><br>
<input type="text" data-fname="materials" id="acc_materials"><br>
<input type="text" data-fname="study" id="acc_study">
<hr>
<div data-debug> Data-Fname / ID </div>
Ответить с цитированием
  #7 (permalink)  
Старый 27.08.2017, 12:11
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от WarDoctor
Решение найдено.
Очень неразумное решение.
Ответить с цитированием
  #8 (permalink)  
Старый 01.11.2017, 22:09
Аспирант
Отправить личное сообщение для WarDoctor Посмотреть профиль Найти все сообщения от WarDoctor
 
Регистрация: 02.01.2015
Сообщений: 32

Сообщение от laimas Посмотреть сообщение
Очень неразумное решение.
Если это неразумно, то предложите свой вариант. Доброй рекомендацией всегда буду рад пополнить свои скудные знания...
Ответить с цитированием
  #9 (permalink)  
Старый 01.11.2017, 22:11
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от WarDoctor
Если это неразумно, то предложите свой вариант.
Ну наверное как-то иначе определять группы.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
зависимые UL LI вместо select (Застрял) chelkaz Элементы интерфейса 18 03.03.2015 11:04
как изменить плагин слайдера? Застрял.. C3po Элементы интерфейса 1 04.10.2014 18:56
Застрял на ровном месте! KupueIIIKo Общие вопросы Javascript 4 05.12.2013 15:42
Пишу калькулятор. Заступорился на простом вопросе. DorianLeroy Общие вопросы Javascript 3 26.08.2011 13:46
Странное повидение IE при простом скрипте. JustViktor Элементы интерфейса 5 21.09.2009 15:51