Javascript 表中的最后一列不可单击
我目前有一个非常疯狂的代码,可以在动态表中单击并展开行。我的问题是,我需要使表中的最后一列不可单击,而我不知道如何做到这一点。我搜索过互联网,尝试过不同的东西,但似乎没有任何帮助 这是我的桌子:Javascript 表中的最后一列不可单击,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我目前有一个非常疯狂的代码,可以在动态表中单击并展开行。我的问题是,我需要使表中的最后一列不可单击,而我不知道如何做到这一点。我搜索过互联网,尝试过不同的东西,但似乎没有任何帮助 这是我的桌子: <table id="myTable"> <tr> <th>Name</th> <th>Type</t
<table id="myTable">
<tr>
<th>Name</th>
<th>Type</th>
<th>Details</th>
</tr>
{{#each companies}}
<tr class="record">
<td>
{{this.name}}
</td>
<td>
{{this.type}}
</td>
<td id="details">
<img style="height: 20px; width: 20px" src="img/arrow_right.png">
</td>
</tr>
{{/each}}
</table>
名称
类型
细节
{{{每家公司}
{{this.name}}
{{this.type}}
{{/每个}}
我想使最后一列(ID=“details”)不可单击
这是我的疯狂点击事件:
$("#myTable").on("click", "tr.record", function () {
var rowIndex = this.rowIndex,
services = null;
var self = this;
$.ajax({
url: "api/relation",
type: 'GET',
success: function (response) {
if (response[rowIndex - 1].relationStats) {
services = response[rowIndex - 1].relationStats.PROVIDES_SERVICE;
}
if (services > 0 && $(self).hasClass('record active')) {
console.log("CLOSING");
$(self.nextSibling).remove();
$(self).removeClass('active');
} else if (services > 0) {
console.log("OPENING");
var openDetails = $('<tr/>').addClass('openDetails').insertAfter(self);
$(self).addClass('active');
var td = $('<td/>').addClass('td').appendTo(openDetails);
$('<p/>').html("Provides service(s): ").appendTo(td);
$('<td/>').html(services).appendTo(openDetails);
}
}
});
});
$(“#myTable”)。在(“单击”,“tr.record”,函数(){
var rowIndex=this.rowIndex,
服务=空;
var self=这个;
$.ajax({
url:“api/关系”,
键入:“GET”,
成功:功能(响应){
if(响应[rowIndex-1].relationStats){
服务=响应[rowIndex-1]。relationStats.Providers\u服务;
}
if(服务>0&&$(self).hasClass('record active')){
控制台日志(“关闭”);
$(self.nextSibling).remove();
$(self.removeClass('active');
}否则如果(服务>0){
控制台日志(“打开”);
var openDetails=$('').addClass('openDetails').insertAfter(self);
$(self.addClass('active');
var td=$('').addClass('td').appendTo(openDetails);
$(“”)html(“提供服务”)。附录(td);
$('').html(服务).appendTo(openDetails);
}
}
});
});
任何帮助都将不胜感激 使用
td
并过滤掉最后一个子项,而不是将单击处理程序注册到tr
$("#myTable").on("click", "td:not(:last-child)", function () {
var self = $(this).closest('tr').get(0), rowIndex = self.rowIndex,
services = null;
$.ajax({
url: "api/relation",
type: 'GET',
success: function (response) {
if (response[rowIndex - 1].relationStats) {
services = response[rowIndex - 1].relationStats.PROVIDES_SERVICE;
}
if (services > 0 && $(self).hasClass('record active')) {
console.log("CLOSING");
$(self.nextSibling).remove();
$(self).removeClass('active');
} else if (services > 0) {
console.log("OPENING");
var openDetails = $('<tr/>').addClass('openDetails').insertAfter(self);
$(self).addClass('active');
var td = $('<td/>').addClass('td').appendTo(openDetails);
$('<p/>').html("Provides service(s): ").appendTo(td);
$('<td/>').html(services).appendTo(openDetails);
}
}
});
});
$(“#myTable”)。在(“单击”、“td:not(:last child)”上,函数(){
var self=$(this).closest('tr').get(0),rowIndex=self.rowIndex,
服务=空;
$.ajax({
url:“api/关系”,
键入:“GET”,
成功:功能(响应){
if(响应[rowIndex-1].relationStats){
服务=响应[rowIndex-1]。relationStats.Providers\u服务;
}
if(服务>0&&$(self).hasClass('record active')){
控制台日志(“关闭”);
$(self.nextSibling).remove();
$(self.removeClass('active');
}否则如果(服务>0){
控制台日志(“打开”);
var openDetails=$('').addClass('openDetails').insertAfter(self);
$(self.addClass('active');
var td=$('').addClass('td').appendTo(openDetails);
$(“”)html(“提供服务”)。附录(td);
$('').html(服务).appendTo(openDetails);
}
}
});
});
使用td
并过滤掉最后一个子项,而不是将单击处理程序注册到tr
$("#myTable").on("click", "td:not(:last-child)", function () {
var self = $(this).closest('tr').get(0), rowIndex = self.rowIndex,
services = null;
$.ajax({
url: "api/relation",
type: 'GET',
success: function (response) {
if (response[rowIndex - 1].relationStats) {
services = response[rowIndex - 1].relationStats.PROVIDES_SERVICE;
}
if (services > 0 && $(self).hasClass('record active')) {
console.log("CLOSING");
$(self.nextSibling).remove();
$(self).removeClass('active');
} else if (services > 0) {
console.log("OPENING");
var openDetails = $('<tr/>').addClass('openDetails').insertAfter(self);
$(self).addClass('active');
var td = $('<td/>').addClass('td').appendTo(openDetails);
$('<p/>').html("Provides service(s): ").appendTo(td);
$('<td/>').html(services).appendTo(openDetails);
}
}
});
});
$(“#myTable”)。在(“单击”、“td:not(:last child)”上,函数(){
var self=$(this).closest('tr').get(0),rowIndex=self.rowIndex,
服务=空;
$.ajax({
url:“api/关系”,
键入:“GET”,
成功:功能(响应){
if(响应[rowIndex-1].relationStats){
服务=响应[rowIndex-1]。relationStats.Providers\u服务;
}
if(服务>0&&$(self).hasClass('record active')){
控制台日志(“关闭”);
$(self.nextSibling).remove();
$(self.removeClass('active');
}否则如果(服务>0){
控制台日志(“打开”);
var openDetails=$('').addClass('openDetails').insertAfter(self);
$(self.addClass('active');
var td=$('').addClass('td').appendTo(openDetails);
$(“”)html(“提供服务”)。附录(td);
$('').html(服务).appendTo(openDetails);
}
}
});
});
我认为您应该使用
$("#myTable").on("click", "td:not(:last)", function () {.....}
如果情况是:
<tr>
<td>....</td>
<td>....</td>
<td class="not record">....</td>
</tr>
<tr>
<td>....</td>
<td>....</td>
<td class="record">....</td>
</tr>
....
....
....
....
....
....
参考资料,我认为您应该使用
$("#myTable").on("click", "td:not(:last)", function () {.....}
如果情况是:
<tr>
<td>....</td>
<td>....</td>
<td class="not record">....</td>
</tr>
<tr>
<td>....</td>
<td>....</td>
<td class="record">....</td>
</tr>
....
....
....
....
....
....
参考资料,我已经试过了,不起作用。我得到了这个错误:“uncaughtypeerror:无法读取未定义”的属性'relationStats',先生,你太棒了!谢谢:)我已经试过了,没用。我得到了这个错误:“uncaughtypeerror:无法读取未定义”的属性'relationStats',先生,你太棒了!谢谢:)