Jquery实时模糊和实时聚焦

hts6caw3  于 2023-01-08  发布在  jQuery
关注(0)|答案(2)|浏览(138)

我正在动态打开一个对话框。当点击一个链接时,它会查找信息并在其中显示。

$('.comment').live('blur', function(){
    var split = (this.id).split("_");
    var id = split[1];

    $('#face_'+ id).fadeOut();
    $('.commentbutton').hide();
    $("#comments_" + id).slideDown();
})

//////////////////////////////////////////////////

// commentopen 
$(".comment").live("focus", function() { 
    var split = (this.id).split("_");
    var vmid = split[1]; 

    $("#face_" + vmid).fadeIn();
    $("#comments_" + vmid).slideUp();
    $('#commentbutton_' + vmid).show();

});

当你第一次打开对话框时,它工作正常,但如果你关闭它并试图再次打开它,它就不再工作了,至少在firefox中是这样。
当我发出警报时,它显示ID已发送。但为什么$('.commentbutton')#face_' + vmid不再是fadeIn()slideUp()slideDown()和模糊功能什么也不做呢?
我也尝试了focusin和focusout。
谢谢。

ohfgkhjo

ohfgkhjo1#

在新版本的jquery live()中,你应该使用on()(注意新的格式):

$(document).on('blur','.comment', function(){
   var split = (this.id).split("_");
   var id = split[1]; 
   $('#face_'+ id).fadeOut();
   $('.commentbutton').hide();
   $("#comments_" + id).slideDown();
});
         //////////////////////////////////////////////////

         // commentopen 
$(document).on("focus",".comment", function() { 
   var split = (this.id).split("_");
   var vmid = split[1]; 

   $("#face_" + vmid).fadeIn();
   $("#comments_" + vmid).slideUp();
   $('#commentbutton_' + vmid).show();

});

http://api.jquery.com/on/

xqnpmsa8

xqnpmsa82#

$(document).on({
    blur: function(){
        var id = this.id.split("_")[0];
        $('#face_'+id).fadeOut();
        $('.commentbutton').hide();
        $("#comments_"+id).slideDown();
    },
    focus: function() {
        var vmid = this.id.split("_")[1];
        $("#face_"+vmid).fadeIn();
        $("#comments_"+vmid).slideUp();
        $('#commentbutton_'+vmid).show();
    }
},'.comment');

用最接近的非动态父文档替换文档。至于为什么第二次单击时不起作用,在没有看到更多实际代码的情况下很难回答。

相关问题