0

我正在使用数据表,我已经通过 ajax 加载了我的表,这也填充了我的新行下拉列表。我的问题是我可以让该行下拉但不能再次关闭。它很简单,只是一次又一次地添加相同的数据等,直到手动刷新页面。这是我的点击事件...

//CLICK EVENT
$('#tblIndustry td.control').live('click', function () {
    var nTr = this.parentNode;
    var i = $.inArray(nTr, anOpen);

    if (i === -1) {
        industryDrillDown(tbls.industry, nTr);
    } //end if

    $(nTr).find('.control i').fadeOut();
}); //ends click event
4

3 回答 3

0

这里的问题是 i 是一个整数,而不是一个 jquery 对象。除非你实际上有一个 i 标签,里面有元素。如果是这种情况,那么您会希望 I 标记具有单击功能,以便在单击时将其隐藏。如果您正在搜索索引处的元素,请尝试使用

.find('.control:eq(' + i + ')');

或者

$(this).fadeOut();

同样,如果没有您的 html,这真的很难做到。记住 JS fiddle 是你的朋友。:D

于 2013-06-25T18:30:37.487 回答
0

jQuery.live 自 jQuery 1.7 起已被贬低。相反,请使用.on()方法。

您可能还想查看.toggle()方法。

于 2013-06-25T18:13:20.740 回答
0

是什么#tblIndustry td.control?我认为这是弹出(下拉)对吗?您需要检查打开弹出窗口(下拉菜单)的其他点击事件,并防止选择器也选择弹出窗口(下拉菜单)。这样,因为事件冒泡到顶部,当您单击淡出时,您也几乎立即打开弹出窗口(下拉菜单)并重新生成内容(再次添加)。

于 2013-06-25T18:31:55.853 回答