我在尝试使用slideToggle JQuery时遗漏了什么?

时间:2014-12-12 09:59:06

标签: jquery visual-studio-2013

我正在尝试在表格行上使用slideToggle,以便在点击时显示其他信息。

我似乎无法正确引用JQuery中的表行,因为我一直收到错误消息“testMe”未定义。

我已经能够尝试快速测试,点击时弹出警报,但工作正常但是当我尝试使用JQuery时,它就不会工作。

这就是我调用alert()

的方式

服务器端代码..

 tr = New TableRow
            tr.Attributes.Add("onclick", "testMe(' " & dt.Item("login_name").ToString & " ') ")

然后是客户端......

function testMe(myLogin) {

    alert(myLogin);
}

这很好但我的JQuery下面没有。请有人可以告诉我哪里出错了

与上面相同的服务器端代码..

$(document).ready(function (testMe) {
    $('tr').click(function () {
        $(this).slideToggle('slow');
    });
});

谢谢

2 个答案:

答案 0 :(得分:0)

如果可能的话,我建议您使用div而不是table。如果没有内容空间,则表格行的高度不能减少。

但是如果必须使用表,则可以将内容包装在div(或span)中。基本上,改变 -

<table>
    <tr>
        <td>Column 1</td>
        <td>Column 2</td>
    </tr>
</table>

到 -

<table>
    <tr>
        <td>
            <div>Column 1</div>
        </td>
        <td>
            <div>Column 2</div>
        </td>
    </tr>
</table>

现在,更改脚本以设置容器div的动画 -

<script>
    $(document).ready(function () {
        $('tr').click(function () {
            $(this).find("div").slideToggle('slow');
        });
    });
</script>

答案 1 :(得分:0)

您可以将登录数据添加为data-attribute,然后在点击时显示其值。

您必须从document.ready处理程序中删除testMe作为参数:

$(document).ready(function () {
    $('tr').click(function () {
        alert($(this).attr('data-login'));
    });
});

演示:http://jsbin.com/cusabuvufa/1/