剑道网格显示rtl div

时间:2015-01-03 13:59:51

标签: jquery filter kendo-ui right-to-left

我正在使用带有可过滤列的Kendo网格。单击过滤器图像时,会出现一个新的div,其中没有与之关联的任何类。我的问题是添加" k-rtl"这个div的课程。

我的剑道网格代码(简要):

 columns: [ {
       field: "Title",
       title: "Title",
       filterable: {
       ui: titleFilter
       }
    }
]

function titleFilter(element) {
                    element.kendoAutoComplete({
                        dataSource: titles
                    });
                }

以下是点击过滤器按钮后生成的代码:

<div>
     <div class="k-filter-help-text" ....>
     </div>
</div>

我想添加class =&#34; k-rtl&#34;到父div,在jquery中这样的东西

$(".k-filter-help-text").parent().addClass("k-rtl");

我该怎么做?上面提到的JQuery不起作用,因为当执行document.ready()时,没有这样的div元素。

2 个答案:

答案 0 :(得分:1)

你最初的想法是对的!

你应该使用类似的东西:

$(".k-filter-help-text").parent().addClass("k-rtl");

但是试着先走一步......

如果您没有div,则无法添加该类,那么您应该尝试查看事件。 (当div存在时)

第一个示例:http://api.jquery.com/toggleClass/

只是一个想法,在document.ready(当Kendo Grid完全可见时,在列上有过滤器图像)时,你应该为过滤器图像上的点击添加一个事件处理程序。

$(document).ready(function {
    $( "identifier" ).click(function() {
        // add class code
    });
});

您可以使用“.k-grid-filter”作为标识符。

我希望有所帮助,让我知道!

答案 1 :(得分:0)

我必须在运行时抓取click事件并应用CSS类:

$(".k-grid-filter").on("click", $(".k-filter-help-text").parent(), function () {
                    $(".k-filter-help-text").parent().addClass("k-rtl");
                });