jQuery 内联编辑选择器

标签 jquery html css inline-editing

我在客户端有一个功能性的内联编辑脚本,但是我想添加一个按钮,如 <input type="button" value="edit here">当有人点击按钮时,它应该能够像我的悬停选择器一样选择值并生成表单

简而言之,我想将悬停状态选择器移除为点击按钮选择器。

查看代码以了解更多信息:

<div id="pesa"><p>PERSONAL INFORMATION</p>
    <ul>
        EMAIL:<li class="editable"><?php echo $email;?></li><input type="button" value="edit here">
        NAME:<li class="editable"><?php echo $name;?></li><input type="button" value="edit here">
        TELLPHONE:<li class="editable"><?php echo $tel;?></li>
        COUNTRY:<li class="editable"><?php echo $country;?></li>
        CITY:<li class="editable"><?php echo $city;?></li>
    </ul>
</div>  

谢谢。好的,抱歉,我在将代码标签放在这里时遇到了问题 js

$(document).ready(function() 
{
var oldText, newText;
$(".editable").hover(
    function()
    {
        $(this).addClass("editHover");
    }, 
    function()
    {
        $(this).removeClass("editHover");
    }
);

$(".editable").bind("dblclick", replaceHTML);


$(".btnSave").live("click", 
                function()
                {
                    newText = $(this).siblings("form")
                                     .children(".editBox")
                                     .val().replace(/"/g, "&quot;");

                    $(this).parent()
                           .html(newText)
                           .removeClass("noPad")
                           .bind("dblclick", replaceHTML);
                }
                ); 

$(".btnDiscard").live("click", 
                function()
                {
                    $(this).parent()
                           .html(oldText)
                           .removeClass("noPad")
                           .bind("dblclick", replaceHTML);
                }
                ); 

function replaceHTML()
                {
                    oldText = $(this).html()
                                     .replace(/"/g, "&quot;");
                    $(this).addClass("noPad")
                           .html("")
                           .html("<form><input type=\"text\" class=\"editBox\" value=\"" + oldText + "\" /> </form><a href=\"#\" class=\"btnSave\">Save changes</a> <a href=\"#\" class=\"btnDiscard\">Discard changes</a>")
                           .unbind('dblclick', replaceHTML);

                }
   }
 ); 

和CSS

     #pesa a{
color: #000;
     }

    #pesa a:hover{
color: #;
     }


    #pesa a:hover{
text-decoration: none;
    }

    h1{
font-size: 30px;
padding: 0;
margin: 0;
    }

    h2{
font-size: 20px;
    }


    .editHover{
background-color: #E8F3FF;
   }

     .editBox{
width: 326px;
min-height: 20px;
padding: 10px 15px;
background-color: #fff;
border: 2px solid #E8F3FF;
    }

    #pesa ul{
list-style: none;
    }

    #pesa li{
width: 330px;
min-height: 20px;
padding: 10px 15px;
margin: 5px;
    }

   li.noPad{
padding: 0;
width: 360px;
   }

   #pesa form{
width: 100%;
  }

.btnSave, .btnCancel{
padding: 6px 30px 6px 75px;
}

.block{
float: left;
margin: 20px 0;
}

最佳答案

function replaceHTML()
{
    $(this).removeClass('editHover'); 
}

或者使用toggleClass()如果您使用相同的方法添加和删除内联编辑器。

关于jQuery 内联编辑选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12158353/

相关文章:

html - 风格与展望

javascript - 如果用户否认实际地理位置,则相对地理位置?

javascript - 如何错开向滚动的 div 添加/删除多个类?

javascript - 如何清理(销毁)Twitter Bootstrap 3.2 模式表单内容

javascript - 如何使用 jQuery 向上移动 div 元素?

html - Adam Freeman 书中的 CSS 特异性查询

jQuery 验证插件错误 : TypeError: validator is undefined

jquery - 使用 jQuery 多次触发 CSS 转换

javascript - 使用 jquery 获取基本 url

javascript - IE7/8 不动态添加 css 属性 'top' 作为内联样式