Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.06.2016, 00:14
Аспирант
Отправить личное сообщение для DarknesS Посмотреть профиль Найти все сообщения от DarknesS
 
Регистрация: 06.05.2016
Сообщений: 41

Click внутри js
Доброй ночи

Есть js код, после выбора определенного селекта показывается div. Внутри textarea - при клике на текст должно вставляться внутрь формы. но клик не срабатывает именно внутри этого js

<script>var voice_s = {
2: '<div style="margin:2px 0;"></div><b class="bold_style_status">Перевод:</b> <textarea name="voice" id="voice" style="width: 679px;font: 12px Arial, sans-serif;margin-left: 45px;" class="textarea_style" readonly="readonly" rows="5"></textarea><div id="from"><a style="font-weight:normal;" href="#">тут слова</a></div> '
 
        };
        function voice_serial(select) {
        var selected = select.options[select.selectedIndex];
 
        if (selected.value in voice_s) {
        document.getElementById("voice_serial").innerHTML = voice_s[selected.value];
        } else {
        document.getElementById("voice_serial").innerHTML = "";
        }
        }


За клик отвечает этот код
(function($){
              $(document).ready(function(){
                  $("#from").tagTo("#voice");
              });
          })(jQuery);


//Author: Realazy
//http://realazy.org/blog/ (chinese)

jQuery.arrRemove = function(arr, rm){
    for (var i = 0, n = 0; i < arr.length; ++i){
        if (arr[i] != rm)
            arr[n++] = arr[i];
    }
    arr.length--;
}

//usage: jQuery(from).tagTo(target, seperator)
//from contain the tags(use a links), target must be assigned and its type must be input type="text" or textarea
//seperator can be "-", "," and space etc, if not assign, the default seperator is ","
//tclass is the class name of the tag which is currently selected, if not assign, the default class name is "selected"

jQuery.fn.tagTo = function(target, seperator, tclass){
    if ("string" == typeof target) target = jQuery(target);
    seperator = arguments[1] || ",";
    tclass = arguments[2] || "selected";

    var tagname = target.get(0).nodeName.toLowerCase();
    if (tagname == "input" || tagname == "textarea"){
        jQuery('a', this).click(function(){
            if (jQuery.trim(target.val()) == ''){
                target.val(jQuery(this).text());
                jQuery(this).addClass(tclass);
            } else {
                var arr = target.val().split(seperator);    
                var isInArr = false;
                var position;
                for (var i = 0, n = arr.length; i < n; ++i) {
                    if (jQuery.trim(arr[i]) == jQuery(this).text()){
                        isInArr = true;
                        position = i;
                        break;
                    }
                }
                if (isInArr == true){
                    jQuery.arrRemove(arr, arr[position]);
                    jQuery(this).removeClass(tclass);
                } else {
                    arr.push(jQuery(this).text());
                    jQuery(this).addClass(tclass);
                }
                target.val(arr.join(seperator));
            }
            return false;
        }); 
    } else {
        throw "target must be an text area";
    }
}



Прошу помочь. Спасибо заранее
Ответить с цитированием
  #2 (permalink)  
Старый 13.06.2016, 00:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

DarknesS,
потому что jQuery не телепат, строка 3 код 2 должна стоять в начале строки 10 код 1.
создали элемент, тогда и инициализируйте, а не пустое место.
Ответить с цитированием
  #3 (permalink)  
Старый 13.06.2016, 01:12
Аспирант
Отправить личное сообщение для DarknesS Посмотреть профиль Найти все сообщения от DarknesS
 
Регистрация: 06.05.2016
Сообщений: 41

Супер)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
js стиль render для react.js vflash Ваши сайты и скрипты 5 01.04.2016 22:57
Вакансия JavaScript разработчик / JS / Frontend developer (Санкт-Петербург) Сергей Грачёв Работа 0 21.09.2015 12:31
Помогите к js коду, написать html код Modrih Элементы интерфейса 8 16.06.2015 18:08
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28
live click выполняется несколько раз hara jQuery 9 09.06.2010 10:58