javascript - 单击触发按钮在“阅读更多”和“阅读更少”按钮中不起作用

标签 javascript jquery html css

我正在尝试制作“多读”和“少读”按钮。一切都很好,我总共有 4 个 div,其中字符受到限制,字符也受到限制,甚至按钮也工作正常,问题是按钮在某些 div 中工作,在某些 div 中不起作用,我不明白有什么问题吗?

function limitCharacters(){
    $('.limit-characters').each(function(){
        var element = $(this);
        // var element = $('.limit-characters');
        var elementHtml = element.html();
        element.prepend(elementHtml);
        element.find("p:first").addClass("limited");
        element.find("p:last").addClass("unlimited hide-element");
        var limitedElement = element.find('.limited');
        var limitedElementString = limitedElement.text();
        var subStringedString = limitedElementString.substring(0,500);
        limitedElement.html(subStringedString);
        var buttonElement = '<a href="#" class="btn btn-sample3 btn-sm actionButton ">Read More</a>';
        element.append(buttonElement);
        var button = $(".actionButton");
        button.click(function(e){
            $(this).parent().find(".unlimited").toggleClass("hide-element");
            $(this).parent().find(".limited").toggleClass("hide-element");
            $(this).toggleClass("read-less");
            if($(this).hasClass("read-less")){
                $(this).html("Read Less");
            }else{
                $(this).html("Read More");
            }
            e.preventDefault();
        });
    });
}
.hide-element{
  display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="limit-characters">
    <p>
        Had best days of my life ever in Nepal. Wish you all a good time and hope to see you again in my next holiday and I promise to make longer holiday for best memories.Had best days of my life ever in Nepal. Wish you all a good time and hope to see you again in my next holiday and I promise to make longer holiday for best memories.Had best days of my life ever in Nepal. Wish you all a good time and hope to see you again in my next holiday and I promise to make longer holiday for best memories.Had best days of my life ever in Nepal. Wish you all a good time and hope to see you again in my next holiday and I promise to make longer holiday for best memories.
    </p>
</div>

最佳答案

问题出在 var button = $(".actionButton"); 中,您应该选择 element 内的 .actionButton .

var button = element.find(".actionButton");

关于javascript - 单击触发按钮在“阅读更多”和“阅读更少”按钮中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46418531/

相关文章:

Javascript 替换一个字符串

javascript - JavaScript 函数可以修改 ASP.NET 服务器上运行的元素吗?

jquery - 如何在 Bootstrap 模式中禁用水平拖动

jquery - 在视觉上禁用一个复选框,但允许它仍然提交它的值

html - 使用 CSS Hover 指定特定位置的静态图像位置

php - 我如何将变量(来自mysql)调用到每行的不同页面上?

html - Logo 未出现在导航栏/Bootstrap 中

javascript - 如何解析 JSON 响应并将值存储在数组中

javascript - 获取一组单选按钮值

jquery - 如何在 JavaScript 中合并两个带有嵌套数组的对象?