javascript - 如何访问 'this' 控件的 clientID 或者在 jscript 中执行 Bootstrap 的 .popover()

标签 javascript jquery asp.net twitter-bootstrap

我所说的“this”是下面 createDiv 函数调用的第一个参数。所以基本上是点击了 LinkBut​​ton。

<asp:LinkButton ID="btn_ReportReply1" runat="server" class="btn btn-danger btn-xs" Text="ReportReply" OnClientClick='<%# String.Format("createDiv(this," + Eval("UniqueNo") +","+ Eval("CommentSeqNo") + "," + Eval("UserNo") + ", \"{0}\");", Eval("LoginID")) %>'   ></asp:LinkButton>

现在我想要对“这个”按钮执行的操作是调用 Bootstrap .popover() 。因此,下面我尝试获取 btn 的 ClientID 并执行 .popover() 但红色下划线显示在 btn.ClientID 下。我无法使用按钮的类,因为有多个按钮具有相同的类。

function createDiv(btn, ReplyNo, CommentSeqNo,ReportedUserNo, LoginID) {

                $('#' + '<%= btn.ClientID %>').popover({
                trigger: 'manual',
                placement: 'left',
                content: vType + vContent

             });

             $('#' + '<%= btn.ClientID %>').popover("show");

}

最佳答案

OnClientClick 在 DOM 对象上呈现为 onclick。该范围内的 this 是 DOM 对象本身,因此您可以使用 btn.id 来获取 ClientID 或简单地使用 $ (btn) 在你的函数中。

这是一个示例:

标记

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript" src="Scripts/jquery-1.7.1.js"></script>
    <script type="text/javascript">
        function createDiv(btn) {
            $(btn).text($(btn).attr('id'));
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Repeater runat="server" ID="List">
            <ItemTemplate>
                <div>
                    <asp:LinkButton ID="thisIsMyId" Text="<%# Container.DataItem %>" runat="server" OnClientClick="createDiv(this); return false;" />
                </div>
            </ItemTemplate>
        </asp:Repeater>
    </div>
    </form>
</body>
</html>

隐藏代码

using System;
namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            List.DataSource = new string[] { "TEST1", "TEST2" };
            this.DataBind();
        }
    }
}

关于javascript - 如何访问 'this' 控件的 clientID 或者在 jscript 中执行 Bootstrap 的 .popover(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30650435/

相关文章:

javascript - 在每个循环中访问 'this' 对象属性

jquery - 如何将 Jquery <div> 替换为可编辑的 &lt;textarea&gt;?

asp.net - 使用 ASP.NET Web API 作为图像服务

javascript - 我不是从0开始

javascript - JQuery UI 对话框不显示

javascript - XMLHttpRequest 在 $.ajax 工作的地方给出 CORS 错误

javascript - 滚动到元素高度+内容变化

javascript - 在 JavaScript 中自动从字符串中删除 '&' 符号

C# - 如何在 : Open PDF, 中突出显示搜索结果,并将突出显示保存回 PDF

javascript - 如何在 phonegap 应用程序上存储文件或任何形式的数据?