gpt4 book ai didi

jquery 点击事件触发多次 :(

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:22:10 29 4
gpt4 key购买 nike

我有以下场景:

我有一个包含 trs 的表,当用户单击“复制”链接时,所有 trs 都有一个“复制”链接,父 tr 被克隆并附加到表中,现在的问题是,第一次点击事件触发正常,但是第二次触发两次,第三次触发三次等等,而且因为我已经“克隆”了 tr,所以我也想将点击功能绑定(bind)到这个克隆的 tr 的“复制”链接,有什么解决方案吗?

我试过 $('.copy-row-link').unbind('click').click(function() {/* 代码 */});

我看过类似的qns,但它们似乎没有解决我的问题

我的代码:

$(".copy-row-link").unbind('click').bind('click', function(e)
{
var strdata = 'class="viewtext" style="background-color:#FFFFFF;" id="highlight1733" onMouseOver="highlight(\'1733\');" onMouseOut="removehighlight(\'1733\');'
//var newTr = currTr.clone(true).addClass("viewtext").css( { "backgroundColor" : "#FFFFFF" } ).attr(;

var id = currTr.attr("id"); // currTr is set previously
var newId = id.replace("highlight", "");
//alert( newId );
newId = parseInt( newId );
newId += 1;
var newTr = currTr.clone()
.addClass("viewtext newAddedRow")
.css("backgroundColor", "#FFFFFF")
.attr('id', "highlight" + newId.toString() )
.mouseover(
function() {
highlight( newId );
}
)
.mouseout(
function() {
removehighlight( newId );
}
);

//newTr.appendTo( currTb );
newTr.hide();
newTr.insertAfter( "#" + id );
newTr.fadeIn(100);
newTr.attr('id', newId);
//e.stopPropagation();
//e.preventDefault();
//e.stopImmediatePropagation();
bindToTr(); // Bind to Tr calls this function again
return false;
});

最佳答案

由于代码不明确,我假设在所有行/TR 中都可以找到上述函数?所以这是我的评论:1- 不要多次使用相同的 ID,而是使用类:2- 使用 live 方法,这样所有"new"行都会有相同的点击事件:

$(".menu-item-copyRow").live('click', function(e) {
// Code goes here
});

3- 您是通过递增当前点击的 ID 来设置新 ID 的吗?!

var id = currTr.attr("id"); // currTr is set previously
var newId = id.replace("highlight", "");
newId = parseInt( newId );
newId += 1;

您应该计算所有 TR,以便获得新 ID,如下所示:

var newID = $('tr','#myTable').length + 1;

关于jquery 点击事件触发多次 :(,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4302094/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com