1

每次选择 4 个按钮的特定组合并单击第 5 个按钮时,我都使用 jQuery/javascript 绘制一系列矩形。当我创建第 10 行矩形时,交互会大大减慢。我之前创建了相同的交互,但它在网页上创建了列表元素。重试画布中的代码并不能解决此问题。

4

1 回答 1

2

您正在将点击事件叠加在一起。每次触发 button1() 时,它都会添加另一个单击处理程序。因此,对于您的所有按钮功能:

这个:

$("#button1").toggle(
    function() {
    $("#button1").css("background-color","yellow");
    is1click = 1;
    makePattern();
},
function() {
    $("#button1").css("background-color","#333");
    is1click = 0;
});

而不是这个:

function button1(){
$("#button1").toggle(
    function() {
    $("#button1").css("background-color","yellow");
    is1click = 1;
    makePattern();
},
function() {
    $("#button1").css("background-color","#333");
    is1click = 0;
});
}

然后停止调用“makePattern”末尾的函数。

我不能 100% 确定您的代码仍会按预期工作,但在当前状态下,每次触发这些按钮 1-5 时,您将不断触发所有这些切换功能。Toggle,您使用它的方式只是一个单击事件处理程序,它跟踪触发的这两个函数中的最后一个,以便它可以触发另一个。如果您希望在设置为零时触发其中一个或另一个切换功能is<1-5>Click,只需执行标准单击并编写您自己的逻辑以根据这些变量的值触发功能。

于 2012-04-20T02:15:29.233 回答