2

我有一个问题,我的网站上有大约 200 个可点击按钮。所有按钮的设计都一样:

<div>
<asp:hyperlink> //or LinkButton
</div>

Div 是按钮的背景样式,而 Hyperlink / LinkBut​​ton 是按钮的文本。当然,目前只有文本是可点击的,所以如果你在文本下但在按钮上单击,你点击失败。

我想改变这一点,问题是,确保背景按钮本身可点击但不写 200 个新按钮的最快和最简单的方法是什么?!

4

4 回答 4

5

这是一个纯CSS解决方案

使您的标签表现为块级元素,并赋予其与父元素相同的大小。

这是一个jsfiddle

HTML

<div class="wholediv">
    <a href="http://www.google.com">Your link</a>
</div>


CSS

.wholediv{
    width: 100px;
    height: 100px;
    background-color: #efefef;
}

.wholediv a {
    width: 100px;
    height: 100px;
    display:block;
    background-color: pink;
}
于 2013-09-16T17:28:41.197 回答
1

我认为您可以使用:

<div onclick="javascriptFunction()">
Button Text
</div>
于 2013-09-16T17:17:53.447 回答
0

您可以使用 jQuery 为所有 DIV 设置单击事件处理程序,如下所示:

HTML:

<div style="background-color: red; width: 50px; text-align: center;" id="one">
    <a>Hello</a>
</div>
<br/>
<div style="background-color: yellow; width: 50px; text-align: center;" id="two"> 
    <a>World</a>
</div>

JavaScript:

$("div").click(function (event) {
    alert(event.currentTarget.id);
});

这是一个jsFiddle

现在要获取服务器端逻辑,您需要让 jQuery click 事件处理程序通过 调用 post 回服务器__doPostBack(),如下所示:

$("div").click(function (event) {
    __doPostBack(event.currentTarget.id,'');
});

最后,在服务器端,您需要使用对象中的__EVENTTARGETRequest来确定哪个 UI 元素触发了回发,如下所示:

if (IsPostBack)
{
    string ControlID = string.Empty;
    if (!String.IsNullOrEmpty(Request.Form["__EVENTTARGET"]))
    {
        ControlID = Page.Request.Params["__EVENTTARGET"];
        Control postbackControl = Page.FindControl(ControlID);

        // Do something with control, that caused post back, here 
    }
}
于 2013-09-16T17:09:10.113 回答
0

您可以使用 jQuery 来完成。请参阅以下代码:

    <div id="button">
         <asp:hyperlink> //or LinkButton
    </div>

    $("#button").click(function (event) {
         // do whatever you want.
    });
于 2013-09-16T17:21:40.867 回答