2017-08-22 131 views
-1

在标记为重复之前,我已经看了下面的问题,没有任何工作适合我。JQuery点击事件需要双击

jQuery click event requires double click to work

Click and double-click event firing(松散realted)

我有需要在某些情况下,一个单一的点击,并在大多数人双击一个jQuery事件。

请参阅小提琴https://jsfiddle.net/SimonPrice/6e9acbo6/5/

在这拨弄你会看到数据的精确表示,在花费和合拢功能不这么工作,我已经删除它们的功能从JavaScript的窗口,以避免弹出窗口分心\警报。

在小提琴中,您将看到一个嵌套表格,其中嵌套表格具有嵌套表格。 (我继承的代码)。

使用此代码

$(document).ready(function() { 

$(document).on('click', '.up', function() { 
    shiftRow($(this)); 
}); 
$(document).on('click', '.down', function() { 
    shiftRow($(this)); 
}); 

}); 

这是从第一个环节所提出的答案,我不能得到这个工作,我仍然不得不双击。

我也试过它在文档,表格,tr和td元素以及类的单击事件它自己。

我需要这个工作在一个单一的点击,将不胜感激,如果任何人都可以帮助我看到我正在犯的错误。

+0

您试图让展开/折叠按钮工作,更正? – freginold

+1

@freginold否,表格的另一面,你会看到一个向上和向下箭头...忽略expand \ collapse按钮。在实际应用中工作正常,只是不在小提琴 –

回答

3

我已经添加了额外的日志到您的函数:

function shiftRow(rowbObj) { 
console.log("up or down arrow clicked"); 
var row = $(rowbObj).closest("tr"); 
console.log(row[0].rowIndex); 
var thisTable = row.closest("table"); 
if ($(rowbObj).is(".up")) { 
    if (row[0].rowIndex > 0) { 
    console.log("current: "+row.text() + " prev: " +row.prev().text()); 

所以它帮助我意识到你有额外的隐藏TR该行的内容(可能是扩大) - (

<tr id="content_0_36000" class="content" style="display: none;"> 

) 所以,当你点击一次,你替换之间的显示和隐藏,这就是为什么它似乎没有任何反应

+0

好抓!在我这边,我发现'$(this)'作为'rowbObj'发送到函数,然后像'$(rowbObj)'那样使用,这并不是很好......另外,'< a class =“up”>'是无用的......类应该放在''...)+1 –

+0

@LouysPatriceBessette你可以展开为什么它不太好做这个?你能提供一个关于你发现的东西的答案,以及它将如何完成 –

+0

关于隐藏行,是的,那是我最初提供的东西,然后持有下一个嵌套表......所以是的,我看到你的观点这个也是 –