我有一個問題,我在我的網站上有大約200個可點擊的按鈕。 所有按鈕的設計就像是相同的:如何使div可點擊
<div>
<asp:hyperlink> //or LinkButton
</div>
股利是按鈕和超鏈接/ LinkButton的背景風格是按鈕的文本。 當然,此時只有文本可以正確點擊,所以如果您單擊文本下方但點擊了按鈕,則點擊失敗。
我想改變這個,問題是,什麼是最快和最簡單的方法來確保背景按鈕本身是可點擊的,但不寫200新按鈕?!
我有一個問題,我在我的網站上有大約200個可點擊的按鈕。 所有按鈕的設計就像是相同的:如何使div可點擊
<div>
<asp:hyperlink> //or LinkButton
</div>
股利是按鈕和超鏈接/ LinkButton的背景風格是按鈕的文本。 當然,此時只有文本可以正確點擊,所以如果您單擊文本下方但點擊了按鈕,則點擊失敗。
我想改變這個,問題是,什麼是最快和最簡單的方法來確保背景按鈕本身是可點擊的,但不寫200新按鈕?!
這裏是一個純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;
}
如此完美!!!!! – Kovu
您可以使用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
}
}
我相信這更多的是CSS樣式和'padding'的問題,而不是jQuery。 – Alvaro
哦,我閱讀標題'如何使div可點擊'不僅僅是一個CSS更改,因爲它需要發佈到服務器,但也許OP可以澄清這一點。 –
我想你可以使用:
<div onclick="javascriptFunction()">
Button Text
</div>
你可以使用jQuery來做到這一點。請看下面的代碼:
<div id="button">
<asp:hyperlink> //or LinkButton
</div>
$("#button").click(function (event) {
// do whatever you want.
});
這是生成的HTML標記?哪個是你的CSS?給與你收到。添加[jsfiddle](http://jsfiddle.net/)以期望得到一些答案。 – Alvaro