2015-03-15 2 views
2

Введите fiddle, чтобы изменить стоимость этикетки нажав на нее.Как изменить текст на текстовое поле при нажатии на него

Но я не хочу, чтобы сделать это в то время как я нажимаю на редактирования (HREF)

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

Как я могу это сделать?

Вот код JQuery У меня есть

$(document).ready(function() { 
    $('a.edit').click(function() { 
     var dad = $(this).parent().parent(); 
     dad.find('label').hide(); 
     dad.find('input[type="text"]').show().focus(); 
    }); 

    $('input[type=text]').focusout(function() { 
     var dad = $(this).parent(); 
     $(this).hide(); 
     dad.find('label').show(); 
    }); 
}); 
+1

вы имеете в виду, когда вы нажимаете вне вы хотите изменить его обратно или вы имеете в виду, когда вы наведете из него затем изменить его обратно? – Chanckjh

+0

Не могли бы вы скрыть элемент редактирования при нажатии? –

+0

@fauxerious: могу ли я отредактировать его, нажав на имя? –

ответ

0

Как насчет чего-то подобного. Demo

$(document).ready(function() { 
    $('.control-label').click(function() { 
     $(this).hide(); 
     $(this).siblings('.edit-input').show(); 
    }); 

    $('.edit-input').focusout(function() { 
     $(this).hide(); 
     $(this).siblings('.control-label').text($(this).val()).show(); 
    }); 
}); 
+1

Это было здорово! –

0

Просто измените цель вашей функции мыши от:

$('a.edit').click(function() { 

в

$('.text-info').click(function() { 

Можно также добавить функцию парения, если вы хотите, чтобы входные данные были скрыты при выводе мыши, а не при нажатии на него. Например:

$('input[type=text]').hover(function() { 
}, function() { 
    var dad = $(this).parent(); 
    $(this).hide(); 
    dad.find('label').show(); 
}); 

Здесь вы скорректировали fiddle.

+0

Спасибо Это работает :) –

0

Вы можете попробовать его с этой модифицированной версией скрипки:

$(document).ready(function() { 
    $('.control-label').click(function() { 
     $(this).hide(); 
     var dad = $(this).parent(); 
     dad.find('input[type="text"]').show().focus(); 
    }); 

    $('input[type=text]').focusout(function() { 
     var dad = $(this).parent(); 
     $(this).hide(); 
     dad.find('label').text(this.value).show(); 
    }); 
}); 

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

Смежные вопросы