Сокращение кода Javascript - PullRequest
       1

Сокращение кода Javascript

3 голосов
/ 11 февраля 2011

Для моего проекта , над которым я работаю.У меня есть фрагмент кода Javascript, который вставляет текст в элемент ввода с меткой, дважды щелкнувшей по нему.

$(document).ready(function() {
    $('#name-label').dblclick(function(){
        $("#name").val('[b][color="#FF0000"]Please Submit![/color][/b]');
    });
});

Но я бы хотел, чтобы этот код работал с несколькими полями без копирования и вставки кода иснова.Я хотел бы, чтобы вставленный текст остался прежним.

Вот метки и идентификаторы ввода, которые я хотел бы использовать:

Метка / ввод

name-label / name
image-label / image
quest-label / quest
price-label / price
ge-label / ge
halch-label / halch
lalch-label / lalch
details-label / details
examine-label / examine
location-label / location
stats-label / stats
keywords-label / keywords

Ответы [ 5 ]

7 голосов
/ 11 февраля 2011
$(document).ready(function() {
    $('label[id$="label"]').dblclick(function(){
        $('#' + this.id.split('-')[0]).val('[b][color="#FF0000"]Please Submit![/color][/b]');
    });
});

1 - Привязать все элементы с идентификаторами , заканчивающимися 'label'.

2 - Поскольку вы придерживаетесь того же соглашения для атрибутов идентификатора, найдите правильный элемент с помощьюизвлеките первое слово из идентификатора, по которому щелкнули мышью, и добавьте «#» для формирования селектора идентификатора.

0 голосов
/ 11 февраля 2011
$(document).ready(function() {
    $('label').dblclick(function(){
        var inp = $(this).attr('id').split('-');
        $("#"+inp[0]).val('[b][color="#FF0000"]Please Submit![/color][/b]');
    });
});
0 голосов
/ 11 февраля 2011

Что-то вроде:

function insertSubmitString(label_id, id) {
    $('#' + label_id).dblclick(function(){
        $('#' + id).val('[b][color="#FF0000"]Please Submit![/color][/b]');
    });
};

function insertAllSubmitStrings() {
  insertSubmitString('name-label', 'name');
  insertSubmitString('image-label', 'image');
  insertSubmitString('quest-label', 'quest');
  // and so on
};

$(document).ready(insertAllSubmitStrings());
0 голосов
/ 11 февраля 2011

Этот код принимает метку, на которую нажали, и использует атрибут for, чтобы найти соответствующее поле <input> для заполнения.

$(document).ready(function () {
    $("label").dblclick(function () {
        $("#" + $(this).attr("for")).val('[b][color="#FF0000"]Please Submit![/color][/b]');
    });
});
0 голосов
/ 11 февраля 2011

создайте карту комбинации элемент-идентификатор / объект и добавьте к ней функцию ptr.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...