0

我在我的应用程序中使用 jQuery,使用带有 datalist 的 primefaces。这是我的 jQuery:

$(document).ready(function(e) {
            var showChar = 100;
            var ellipsestext = "...";
            var moretext = "Daha Fazla";
            var lesstext = "Daha Az";
            $('.more').each(function() {
                var content = $(this).html();

                if(content.length > showChar) {

                    var c = content.substr(0, showChar);
                    var h = content.substr(showChar-1, content.length - showChar);

                    var html = c + '<span class="moreellipses">' + ellipsestext+ '</span><span class="morecontent"><span>' + h + '</span><a href="" class="morelink">' + moretext + '</a></span>';

                    $(this).html(html);
                }


            $(".morelink").click(function(){
                if($(this).hasClass("less")) {
                    $(this).removeClass("less");
                    $(this).html(moretext);
                } else {
                    $(this).addClass("less");
                    $(this).html(lesstext);
                }
                $(this).parent().prev().toggle();
                $(this).prev().toggle();
                return false;
            });
            });
        });

我实际上是从这个网站得到的:http: //www.midnight-coding.com/2012/09/jquery-implementing-show-more-show-less.html?showComment=1370956365671#c4153997055911566116

但我遇到的问题是,当我使用 datalist 分页转到另一个页面时,脚本不起作用。换句话说,脚本只能运行一次。

有人可以帮我吗?提前致谢。

4

1 回答 1

-1

尝试用 .on 替换您的点击处理程序:

这个:

$('.morelink').click(function () {

变成这样:

$('body').on('click', '.morelink', function () {

看看下面的问题Why use jQuery on() instead of click()一个很好的解释,但本质上你是把你的点击事件绑定到 .morelink 容器的那个实例上。如果您在 jQuery 中覆盖它,您将丢失该事件。

于 2013-06-11T14:21:03.880 回答