如何通过单击项目行(而不是选择项目)打开列表项?

时间:2012-08-13 17:58:55

标签: jquery sharepoint

当用户点击项目行(而不是linktitlenomenu列)时,如何打开列表项(或文件夹)? 默认情况下,sharepoint选择此项,我需要通过单击复选框选择项目,否则打开项目。 我看到许多不同的jQuery脚本,但我只发现如何使用jQuery获取项目链接:

$(document).ready(function () {
    $('.ms-itmhover').each(
        function () {
            var a = $(this).find("td div[Field=LinkFilename] a")
            alert(a.attr('href'));
        }
    );

});

但我不知道如何在行onclick处理程序中粘贴此URL。

2 个答案:

答案 0 :(得分:0)

请检查以下代码,它可能对您有帮助。

 $(document).ready(function () {
    $(".ms-itmhover").each(function () {
        $(this).attr("href", $(this).find('td div[field="LinkFilename"] a').attr("href"));
    });

});

答案 1 :(得分:0)

我建议反对它,但如果你真的想这样做我建议使用dblclick而不是模糊默认的单击行为。

所以在你的$(document).ready或JSLink中:

(function () {
    "use strict";
    var rows = window.document.getElementsByClassName('ms-itmhover'),
        len = rows.length,
        i, 
        setLinkOnRow = function (row) {
            var link = row.querySelector('td div[field^=Link] a'),
                href = link.getAttribute('href');
            row.ondblclick=function () {
                window.location.href = href;
            };
        };

    for(i = 0; i < len; i += 1) {
        setLinkOnRow(rows[i]);
    }    
}());

或者,如果您有jQuery供您使用:

(function ($) {
    "use strict";
    $('.ms-itmhover').each(function () {
        var $this = $(this),
            href = $this.find('td div[field^=Link] a').attr('href');
        $this.dblclick(function () { 
            window.location.href = href;
        });
    });
}(jQuery));