0

我有一个带有输入的表单,Jquery 将特定输入(url 输入)表单输入链接到链接,但是我有例如两个输入的 url,HTML id 是url0url1,当我想编辑第一个input/url0 url1 的输入变得可见,并且对 url1 而不是 url0 进行了更改,当单击输入时,它使 url1 的值与 url0 相同,您可以在这里看到我的意思 - jsfiddle

多谢

具体步骤:

  1. 带输入的表单
  2. 两个 url 输入 url0/url1
  3. onload 它们是链接,但在单击时在 HTML 中隐藏了输入激活输入,因此可以编辑
  4. 当点击输入时,它再次转换为链接

问题是这两个输入(url0/url1)会混淆并在编辑时产生奇怪的行为。请检查上面的链接以查看

4

2 回答 2

1

奇怪的行为与您如何处理事件有关

例如

$('#url0,#url1').val($(this).text()).show().focus();

单击任一链接即可打开两个输入。

您需要在输入和链接之间进行引用并对其进行维护或从链接到输入和返回动态更改它。

ps 没想到几天后我会看到完全相同的代码:P

于 2012-06-22T12:57:11.993 回答
1

请参阅此处的工作 jsFiddle 。

这是修改后的 JS,当您单击链接时可以使用 -

$('.a0 a').click(function(e){
    e.preventDefault();
    $(this).parent().parent().find('input').val($(this).text()).show().focus();
    $(this).parent().hide();
})

$('#url0, #url1').each(
    function(index, element){
        $(element).blur(function(){
            $(this).hide().prev().show().find('a').html(this.value);
    })
    }    
);

当您单击链接所在的 div 时,以下工作有效 - jsFiddle

$('.a0').click(function(e){
    e.preventDefault();
    $(this).parent().find('input').val($(this).find('a').text()).show().focus();
    $(this).hide();
})

$('#url0, #url1').each(
    function(index, element){
        $(element).blur(function(){
            $(this).hide().prev().show().find('a').html(this.value);
    })
    }    
);

​</p>

于 2012-06-22T13:05:24.997 回答