Javascript 每个()函数都会减慢速度

Javascript 每个()函数都会减慢速度,javascript,function,each,Javascript,Function,Each,对不起,刚刚发现我的括号放错地方了!现在一切都好了。谢谢你的帮助 我有这个功能,当我点击某些按钮时会触发。该功能是快速的,比如说前10次点击。但是,每次我触发函数(单击按钮)时,函数都会越来越慢。每次点击似乎要花两倍的时间。有人知道为什么吗?我想更重要的是,我如何更改代码来防止这种情况 谢谢 function CollarStyleFunction(){ $('#Collar-Style-Box').children(".Fabrics").children(".SwatchBox").chi

对不起,刚刚发现我的括号放错地方了!现在一切都好了。谢谢你的帮助

我有这个功能,当我点击某些按钮时会触发。该功能是快速的,比如说前10次点击。但是,每次我触发函数(单击按钮)时,函数都会越来越慢。每次点击似乎要花两倍的时间。有人知道为什么吗?我想更重要的是,我如何更改代码来防止这种情况

谢谢

function CollarStyleFunction(){

$('#Collar-Style-Box').children(".Fabrics").children(".SwatchBox").children('img').each(function () {

    var titleIs = this.title;
    if (titleIs==option) {
        $(this).parent().css("display", "inline");
    }

});


///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
其他一些信息和代码:

JS加载一个XML文件并将10个结构样例加载到div中(class=“Fabrics”):

函数解析(文档){
$(文档)。查找(“样例”)。每个(函数(){
$(“.Fabrics”).append(
''+
''+
''
);
});
}//函数解析结束
HTML:


领式
只是一些评论

> function CollarStyleFunction(event){
未使用事件参数,它是否有用

>     $('#Collar-Style-Box').children(".Fabrics").children(".SwatchBox").children('img').each(function (i) {
>     titleIs = $(this).attr('title');
其他人则评论使用选择器(可能会传递给本机querySelectorAll方法)而不是多个函数调用

未使用i参数,它是否有用

>     $('#Collar-Style-Box').children(".Fabrics").children(".SwatchBox").children('img').each(function (i) {
>     titleIs = $(this).attr('title');
执行上述操作时,变量titleIs变为全局变量。它可能应该是本地的。仅获取标题属性也更有效:

var titleIs = this.title;

期权是否在其他地方草签?不需要圆括号选项:

你真的想要内联吗?考虑将显示设置为''(空字符串),以便元素可以返回其默认值或继承值,例如:

this.parentNode.style.display = '';

>     }
> });

您可以在jsFiddle.net中创建一个jsFiddle吗?注意:您可以编写$('#Collar Style Box>.Fabrics>.SwatchBox>img')并保留所有子函数()。提高可读性;)请向我们展示您的HTML,以便我们可以帮助您修复/改进CSS选择器的使用。另外,您是否每次运行下一次单击时都在添加越来越多的DOM对象?所有按钮都在启动相同的函数,我没有添加任何内容(至少我没有意识到!)我的第一个猜测是,我在这里看到的代码可能是递归绑定元素(绑定其他事件或在事件处理程序中创建更多节点)。是否可以包含更多代码,包括将事件绑定到此方法的部分?感谢我所做的更改,速度仍在减慢。抱歉,刚刚发现我的括号放错了位置!现在一切正常。感谢帮助。
  if (titleIs == option) {
>         $(this).parent().css("display", "inline");
this.parentNode.style.display = '';

>     }
> });