在每个UL块Jquery中为按钮设置onClick动作

时间:2017-10-04 08:06:38

标签: javascript jquery html css

我有10个(ul)块,它们是用$ windows.onLoad动态构建的,在每个块中我都有术语列表(li)。每个块中的某些术语最初必须是不可见的。我只使用Jquery选择器在脚本中执行的所有操作。

window).load(function () {
            $.ajax({
                url: '@controllers.blog.routes.BlogController.allBlogTerms()',
                type: 'get',
                success: function (terms) {

                    var urlPrefix = "@translateUrl(controllers.blog.routes.BlogController.termItem("").url)";
                    for (var l = 0; l < terms.length; l++) {
                        $('.list_of_terms').append('<div class="item col-md-4">\
                                <div class="inner_item">\
                                <div class="capital">\
                                ' + terms[l].letter + '\
                                </div>\
                                <ul class="ul' + l + '">\
                                </ul>\
                                </div>\
                                </div>\
                                <div class="clearfix"></div>');
                        for (var t = 0; t <= terms[l].terms.length - 1; t++) {
                            if (t > 5)
                                $('.ul' + l).append('<li style="display:none;"><a href="' + urlPrefix + terms[l].terms[t].url + '">' + terms[l].terms[t].title + '</a></li>');
                            else
                                $('.ul' + l).append('<li><a href="' + urlPrefix + terms[l].terms[t].url + '">' + terms[l].terms[t].title + '</a></li>');
                        }

因此,我在此块上创建了一个按钮,以管理其中列表的可见性。 但我有一个问题,每个按钮与每个块耦合。当我在某个块上按下它时 - 它会显示&#39; li&#39;在所有街区。

 $.fn.myFunc = function() {

                                $('li').show();
                        };


                        $('.ul' + l).append('<button type="button" onclick="$(this).myFunc(????);">Canada</button>');

当我尝试传递参数&#34; l&#34; (这意味着块的数量),它无法在范围内识别它(现在的问号)。 那么我如何参数化我的按钮,以便它们只能在它们所在的UL上起作用

1 个答案:

答案 0 :(得分:0)

git push

将显示页面上的所有li元素。

我希望这个例子可以帮到你:

$('li').show();