2

問題があります。Web サイトに約 200 個のクリック可能なボタンがあります。すべてのボタンは同じように設計されています。

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

Div はボタンの背景スタイルで、Hyperlink / LinkBut​​ton はボタンのテキストです。もちろん、現時点ではテキストのみがクリック可能であるため、テキストの下でボタンをクリックすると、クリックに失敗します。

これを変更したいのですが、問題は、背景ボタン自体がクリック可能であることを確認するための最速かつ最も簡単な方法は何ですか?!

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 クリック イベント ハンドラー呼び出しポストを 経由でサーバーに戻す必要があります__doPostBack()

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

最後に、サーバー側では、次のよう__EVENTTARGETに、オブジェクトの値を使用して、Requestどの 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 に答える