jquery
2013-05-19 76 views 0 likes 
0

我有一个js脚本,可以在jsFiddle中工作,但在实际的网站上无法工作,我无法想象任何其他工作。jQuery在jsFiddle上无法在wesite上工作

这里是fiddle

这里是website

我需要一个复选框,点击时会依次检查了一些其他的复选框。

$("form input[id='selectall']").click(function() { 
    var inputs = $("form input[class='produse4export']"); 
    for (var i = 0; i < inputs.length; i++) { 
     if (this.checked) { 
      inputs[i].checked = true; 
      checkme(); 
     } else { 
      inputs[i].checked = false; 
      uncheckme(); 
     } 
    } 
}); 

当这些复选框一次被选中时,它们必须启用其他复选框。当它们未被选中时,其余的复选框必须再次被禁用并且未被选中(如果它们被选中)。

有点难以解释,但小提琴和网页都很容易阅读。为什么它不按预期工作?

回答

1

在小提琴中,您在页面加载时绑定事件。在您的页面上,您正在尝试在解析页面时进行此操作。

在你页面,事件处理程序绑定代码更改为:

$(document).ready(function() { 
    $("form input[id='selectall']").click(function() { 
     ... 
    }); 
}); 
3

您需要将script块移动到下面作用的元素。

它的工作原理上的jsfiddle的原因是的jsfiddle有真正脑死亡奇怪默认行为,也就是把所有的脚本在从window#load事件调用的函数。 (您可以在左侧看到它,它是从顶部开始的第二个选择框。)因此,在jsFiddle中,只有在解析了所有HTML并且存在元素后,脚本代码才会运行。但是在您的网站上,您将代码放在以上,因此当您尝试去获取它们时,它们还不存在。

该放哪些东西的口头禅是:“样式,内容,脚本。”在所有内容之后,将样式表(内联和链接)放在文档的顶部,正文中的内容(显然)以及底部的脚本。这样,当脚本运行时,元素就存在于DOM中。

参见:

+0

是的,脑死亡,但感谢你的时间不过 – flish

+0

@flish:不用担心。 (你明白我是在谈论jsFiddle的默认设置,而不是*你使用jsFiddle。) –

+0

这不是真正的脑残,你可以控制,在什么时候包括脚本。 – Arnthor

相关问题