jquery - 编写此脚本的更漂亮的方式(点击时隐藏跨度,显示输入)

标签 jquery html

我有这个代码:

$('body').on('click', 'span.note', function (event) {
    $(this).hide();
    $(".addnote").show();
});
$('body').on('focusout', '.addnote', function (event) {
    if ($(this).val() == "") {
        $(this).hide();
        $("span.note").show();
    }
});

这是我的 HTML:

     <span class="note">test</span>
     <input class="addnote" type="text" style="display:none;">

它的作用是:点击它隐藏跨度并显示输入字段,当将输入字段留空时,在 focusout 上它返回跨度。

它可以工作,但我很确定有一种更漂亮的方式来编写它。任何人都可以帮助我并指出我可以改进的地方。谢谢。

编辑:此外,我注意到在单击输入显示的文本时,但我必须再次单击它才能写入,有什么方法可以修复,只需单击一下它就会显示该字段,并且访问者可以在该字段中键入内容?

最佳答案

如果元素是兄弟元素,您还可以将对象传递给 .on() 方法:

$('body').on({
    click: function() {
       $(this).filter('span').hide().next().show();
    },
    blur: function() {
       this.value == '' && $(this).hide().prev().show();  
    }
}, 'span.note, .addnote');

http://jsfiddle.net/27kYh/

关于jquery - 编写此脚本的更漂亮的方式(点击时隐藏跨度,显示输入),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21478158/

相关文章:

c# - 从服务器端调用 Javascript 函数

php - Wordpress 从短代码回调中附加到 HEAD

HTML/CSS - 奇怪的调整大小?

html - 如何通过媒体查询提前打破列?

javascript - 用于信息图表的世界地图 API

javascript - div 元素不使用 javascript 更新

javascript - 显示/隐藏 Div 的多个复选框

javascript - jquery 在选择器中查找逻辑运算符

jquery - 按 css 类选择

html - 从数组值更改 Css