我的代码正在运行,但要求我点击两次以激活我的链接(一次用于点击事件,一次用于切换事件.)我该怎么做才能使我只需点击一次以便切换将自动发生?
//Show or Hide Comments $('#showHideComments').live('click',function() { $('#showHideComments').toggle(function() { $(".commentsSwitch").animate({"marginLeft": "+=53px"},500); $("#comments").fadeIn(300); $("#addComment").fadeIn(300); },function(){ $(".commentsSwitch").animate({"marginLeft": "-=53px"},500); $("#comments").fadeOut(300); $("#addComment").fadeOut(300); }); });
谢谢!
解决方法
你不能一起使用直播和切换.你可以做的,只是让你自己的“切换”的种类:
$('#showHideComments').live('click',function() { if($("#addComment").is(':visible')){ $(".commentsSwitch").animate({"marginLeft": "-=53px"},500); $("#comments,#addComment").fadeOut(300); } else { $(".commentsSwitch").animate({"marginLeft": "+=53px"},#addComment").fadeIn(300); }; });
live绑定到click,但是,当调用toggle时,它也会在点击时绑定(通常).您应该决定“实时”是否真的符合您的需求.例如,如果在使用页面期间通过AJAX替换#showHideComments对象,那么您需要实时和我的解决方案.但是,如果它没有换出并保持不变,只需使用原始实时功能的内部(只需切换代码),您就会变得金色.