jquery - 显示/隐藏无法正常工作?

标签 jquery

我有一段 HTML:

        <div class="clearfix wanted_item">
            <div class="clearfix">
                <div class="float_right"><img src="images/pin.png"></div>
                <div class="float_right">
                    <h3>a</h3>
                    <div>abcd</div>
                </div>
            </div>
            <div class="float_right more_details" style="display: block;">
                                    <ul>
                    <li>some list</li>                  </ul>
                <div class="application_link">                      
                    <a class="orange_button" href="volunteer.php?volunteer_type=1"><span>apply</span></a>  
                </div>
            </div>
            <a class="float_left clearfix more_details_link" href="javascript:void(0);">Show details</a>
        </div>

我有这个 jQuery 代码:

$(".less_details_link").click(function() {
    $(this).parent().children(".more_details").slideUp(500);
    $(this).text("Show details");
    $(this).removeClass('less_details_link');
    $(this).addClass('more_details_link');
});
$(".more_details_link").click(function() {
    $(this).parent().children(".more_details").slideDown(500);
    $(this).text("Hide details");
    $(this).removeClass('more_details_link');
    $(this).addClass('less_details_link');
});

出于某种原因,当我单击“show”链接时它可以正常工作,我还可以看到它将类更改为 less_details_link 但第二个 click() 函数如果没有任何输出到控制台日志,则无法工作。当我点击“隐藏详细信息”链接时,它什么也没做。

最佳答案

jsFiddle Demo

这是因为当您向元素添加类时,它不会附带事件处理程序,除非您使用 on ( jQuery API: on ) 作为事件处理程序

$("body").on("click",".less_details_link",function() {
 $(this).parent().children(".more_details").slideUp(500);
 $(this).text("Show details");
 $(this).removeClass('less_details_link');
 $(this).addClass('more_details_link');
});
$("body").on("click",".more_details_link",function() {
 $(this).parent().children(".more_details").slideDown(500);
 $(this).text("Hide details");
 $(this).removeClass('more_details_link');
 $(this).addClass('less_details_link');
});

关于jquery - 显示/隐藏无法正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16225054/

相关文章:

javascript - 滚动时更改 html 媒体播放器的位置和大小

javascript - 如何区分 javascript 中的 jquery 对象和 dict

javascript - 当选中复选框并在文本框中发布值时,如何显示带有单选按钮的 jquery 对话框

javascript - 未捕获的 InvalidValueError : not an Array

JavaScript - 使用 window.open() 打开一个 URL 并在打开的页面上进行全选

jquery - Colorbox 第二次打不开

JQuery 单击时切换行

javascript - 使用ajax和php上传多个文件

javascript - 停止更改一个对象参数影响该对象的副本

javascript - 使用 Javascript 获取用户控件属性值