如何使可点击 <td>
How to Make Clickable <td>
我知道已经有很多关于此的帖子,但我就是无法让它发挥作用。我想要做的就是让一个完整的 <td>
可以点击。我有一个生成此 table 的 PHP 循环,下面是其中的一个简单部分。
<table id="reservation_table" style="border-collapse: collapse; border: 1px solid; padding: 5px;">
<tr>
<th style="border: 1px solid; padding: 5px;"></th>
<th style="border: 1px solid; padding: 5px;">Dec. 18</th>
<th style="border: 1px solid; padding: 5px;">Dec. 20</th>
<th style="border: 1px solid; padding: 5px;">Dec. 21</th>
</tr>
<tr>
<td style="border: 1px solid; padding: 5px;" class="clickable">1:00-1:15</td>
<td id="1" style="border: 1px solid; padding: 5px;" class="clickable"><a href="http://somewhere.com">Reserve slot</a></td>
<td id="2" style="border: 1px solid; padding: 5px;" class="clickable"><a href="http://somewhere.com">Reserve slot</a></td>
<td id="3" style="border: 1px solid; padding: 5px;" class="clickable"><a href="http://somewhere.com">Reserve slot</a></td>
</tr>
<tr>
<td style="border: 1px solid; padding: 5px;">4:00-4:15</td>
<td id="28" style="border: 1px solid; padding: 5px;" class="clickable"><a href="http://somewhere.com">Reserve slot</a></td>
<td id="29" style="border: 1px solid; padding: 5px;" class="clickable"><a href="http://somewhere.com">Reserve slot</a></td>
<td id="30" style="border: 1px solid; padding: 5px;"><a href="http://somewhere.com">Reserve slot</a></td>
</tr>
</table>
我真正需要的是 CSS 让 class "clickable" 实际上可以点击。现在是....
.clickable{
display: table-cell;
height: 100%;
}
将显示更改为阻止不仅会弄乱格式,而且实际上也不会使单元格可点击。它会将光标更改为悬停时的指针手,但实际点击进入网站不起作用。
你应该确保 clickable
里面的 <a>
填满整个 td
.clickable a {
width: 100%;
margin: 0;
}
如果你想要完整的 td 元素像 link 一样,你应该这样做 this.It 将使用一些简单的 javascript.Here 作为例子使你的整个 td 可点击单击时它将 td 背景颜色更改为红色
var input=document.getElementsByTagName('td');
for(i=0;i<input.length;i++){
(function (i){
input[i].addEventListener('click',function(e){
e.target.style.background='red';
});
})(i)
}
<table id="reservation_table" style="border-collapse: collapse; border: 1px solid; padding: 5px;">
<tr>
<td style="border: 1px solid; padding: 5px;" ><a href='http://somewhere.com'>1:00-1:15</a></td>
</tr>
</table>
你不应该使用 table 标签而是使用 css ,这是你问题的答案
HTML
<div class="table" id="reservation_table">
<div class="row">
<p></p>
<p>Dec. 18</p>
<p>Dec. 20</p>
<p>Dec. 21</p>
</div>
<div class="row">
<p>1:00-1:15</p>
<a href="http://somewhere.com">Reserve slot</a>
<a href="http://somewhere.com">Reserve slot</a>
<a href="http://somewhere.com">Reserve slot</a>
</div>
<div class="row">
<p>4:00-4:15</p>
<a href="http://somewhere.com">Reserve slot</a>
<a href="http://somewhere.com">Reserve slot</a>
<a href="http://somewhere.com">Reserve slot</a>
</div>
</div>
CSS
.table {
display: table;
border: 1px solid;
padding: 5px;
}
.row {
display: table-row;
}
a,p {
background: yellow; // for demonstration
max-width: 100%;
height: 100%;
display: table-cell;
border: 1px solid;
padding: 5px;
text-align: center;
}
我的回答用户 JQuery 的解决方案。
要设置 html,我使用 class 属性和 data-href。
<td class='clickable' data-href='www.knowhere.com'>Put anything you want here</td>
然后在页面底部插入 JQuery
<script type="text/javascript">
$(".clickable").click(function(){
window.location = $(this).data("href");
});
</script>
所以这是如何工作的,JQuery 以 class 属性为目标寻找我们使用的可点击标签,一旦该区域被点击,它就会导致使用 data-href 并更改页面位置。
通过这种方式,所有具有可点击标签和 href 数据的元素现在都变成了 hyperlinks。
用这种方式而不是仅仅将 hyperlink 嵌入到单元格中,您会错过一些事情。
- 无蓝色下划线
- 浏览器底部没有URL路径
- 不是很明显 link
但其中一些可以轻松添加。
好处是整个单元格都可以点击,而不仅仅是文本。
我知道已经有很多关于此的帖子,但我就是无法让它发挥作用。我想要做的就是让一个完整的 <td>
可以点击。我有一个生成此 table 的 PHP 循环,下面是其中的一个简单部分。
<table id="reservation_table" style="border-collapse: collapse; border: 1px solid; padding: 5px;">
<tr>
<th style="border: 1px solid; padding: 5px;"></th>
<th style="border: 1px solid; padding: 5px;">Dec. 18</th>
<th style="border: 1px solid; padding: 5px;">Dec. 20</th>
<th style="border: 1px solid; padding: 5px;">Dec. 21</th>
</tr>
<tr>
<td style="border: 1px solid; padding: 5px;" class="clickable">1:00-1:15</td>
<td id="1" style="border: 1px solid; padding: 5px;" class="clickable"><a href="http://somewhere.com">Reserve slot</a></td>
<td id="2" style="border: 1px solid; padding: 5px;" class="clickable"><a href="http://somewhere.com">Reserve slot</a></td>
<td id="3" style="border: 1px solid; padding: 5px;" class="clickable"><a href="http://somewhere.com">Reserve slot</a></td>
</tr>
<tr>
<td style="border: 1px solid; padding: 5px;">4:00-4:15</td>
<td id="28" style="border: 1px solid; padding: 5px;" class="clickable"><a href="http://somewhere.com">Reserve slot</a></td>
<td id="29" style="border: 1px solid; padding: 5px;" class="clickable"><a href="http://somewhere.com">Reserve slot</a></td>
<td id="30" style="border: 1px solid; padding: 5px;"><a href="http://somewhere.com">Reserve slot</a></td>
</tr>
</table>
我真正需要的是 CSS 让 class "clickable" 实际上可以点击。现在是....
.clickable{
display: table-cell;
height: 100%;
}
将显示更改为阻止不仅会弄乱格式,而且实际上也不会使单元格可点击。它会将光标更改为悬停时的指针手,但实际点击进入网站不起作用。
你应该确保 clickable
里面的 <a>
填满整个 td
.clickable a {
width: 100%;
margin: 0;
}
如果你想要完整的 td 元素像 link 一样,你应该这样做 this.It 将使用一些简单的 javascript.Here 作为例子使你的整个 td 可点击单击时它将 td 背景颜色更改为红色
var input=document.getElementsByTagName('td');
for(i=0;i<input.length;i++){
(function (i){
input[i].addEventListener('click',function(e){
e.target.style.background='red';
});
})(i)
}
<table id="reservation_table" style="border-collapse: collapse; border: 1px solid; padding: 5px;">
<tr>
<td style="border: 1px solid; padding: 5px;" ><a href='http://somewhere.com'>1:00-1:15</a></td>
</tr>
</table>
你不应该使用 table 标签而是使用 css ,这是你问题的答案
HTML
<div class="table" id="reservation_table">
<div class="row">
<p></p>
<p>Dec. 18</p>
<p>Dec. 20</p>
<p>Dec. 21</p>
</div>
<div class="row">
<p>1:00-1:15</p>
<a href="http://somewhere.com">Reserve slot</a>
<a href="http://somewhere.com">Reserve slot</a>
<a href="http://somewhere.com">Reserve slot</a>
</div>
<div class="row">
<p>4:00-4:15</p>
<a href="http://somewhere.com">Reserve slot</a>
<a href="http://somewhere.com">Reserve slot</a>
<a href="http://somewhere.com">Reserve slot</a>
</div>
</div>
CSS
.table {
display: table;
border: 1px solid;
padding: 5px;
}
.row {
display: table-row;
}
a,p {
background: yellow; // for demonstration
max-width: 100%;
height: 100%;
display: table-cell;
border: 1px solid;
padding: 5px;
text-align: center;
}
我的回答用户 JQuery 的解决方案。
要设置 html,我使用 class 属性和 data-href。
<td class='clickable' data-href='www.knowhere.com'>Put anything you want here</td>
然后在页面底部插入 JQuery
<script type="text/javascript">
$(".clickable").click(function(){
window.location = $(this).data("href");
});
</script>
所以这是如何工作的,JQuery 以 class 属性为目标寻找我们使用的可点击标签,一旦该区域被点击,它就会导致使用 data-href 并更改页面位置。
通过这种方式,所有具有可点击标签和 href 数据的元素现在都变成了 hyperlinks。
用这种方式而不是仅仅将 hyperlink 嵌入到单元格中,您会错过一些事情。
- 无蓝色下划线
- 浏览器底部没有URL路径
- 不是很明显 link
但其中一些可以轻松添加。
好处是整个单元格都可以点击,而不仅仅是文本。