Javascript jqueryaddclass奇怪的问题
我的代码在这里 所有js都能正常工作,并添加/删除css类(在ChromeJS控制台中检查) 但不活跃的风格不适用:(Javascript jqueryaddclass奇怪的问题,javascript,jquery,html,css,addclass,Javascript,Jquery,Html,Css,Addclass,我的代码在这里 所有js都能正常工作,并添加/删除css类(在ChromeJS控制台中检查) 但不活跃的风格不适用:( 我希望radiobutton字段上的灰色背景不可选择。这是因为您已通过左pannel JSFIDLE控件将代码放入“DOM就绪”处理程序。这些函数不是全局函数 尝试更改函数的定义。而不是 function surpClassAdd() { 试一试 现在,在实际代码中显然不需要这样做。另一个(更好的)方法是停止使用“onchange”属性绑定事件处理程序,并使用jQuery(因
我希望radiobutton字段上的灰色背景不可选择。这是因为您已通过左pannel JSFIDLE控件将代码放入“DOM就绪”处理程序。这些函数不是全局函数 尝试更改函数的定义。而不是
function surpClassAdd() {
试一试
现在,在实际代码中显然不需要这样做。另一个(更好的)方法是停止使用“onchange”属性绑定事件处理程序,并使用jQuery(因为您仍然在使用库)。将处理程序绑定到“ready”处理程序中的元素,并且函数不需要是全局的(不管怎样,这都是混乱和讨厌的).这是因为您已通过左pannel JSFIDLE控件将代码放入“DOM就绪”处理程序中。这些函数不是全局函数 尝试更改函数的定义。而不是
function surpClassAdd() {
试一试
现在,在实际代码中显然不需要这样做。另一个(更好的)方法是停止使用“onchange”属性绑定事件处理程序,并使用jQuery(因为您仍然在使用库)。将处理程序绑定到“ready”处理程序中的元素,并且函数不需要是全局的(不管怎样,这都是混乱和讨厌的).您的代码有几个问题 1。由于您在侧栏上选择了
onDomReady
,因此您定义的函数不是全局函数。请改用no wrap(head)
注意:如果使用jQuery的.bind()
方法,则不需要全局声明这些函数(请参见#5)
2.您不需要CSS窗格中的
和
3。您正在单选按钮上添加类,这没有效果。您应该执行以下操作:
<link rel='stylesheet' href='http://example.com/css/default.css' />
<script src='http://mysite.com/js/default.js'></script>
HTML
或者在这种情况下,在
元素上执行此操作
4.这只是一个样式问题,但您应该使用段落(
文本
)而不是简单的文本节点(文本
)和每行后面的换行符
5.如果不使用内联事件处理程序和内联样式,则将CSS和JS代码编写在单独的文件中,并像下面这样引用它们:
<link rel='stylesheet' href='http://example.com/css/default.css' />
<script src='http://mysite.com/js/default.js'></script>
某些事件处理程序(例如,单击
,键控
,更改
)具有速记功能:
$('#el').click(function() {
// your event handler goes here
});
6.否。在这种情况下最好使用表单
7。您可以在两个函数中使用
.toggleClass('active-inactive')
而不是编写.addClass('active').removeClass('inactive')
,这样您就有了一个函数而不是两个。您的代码有几个问题
1。由于您在侧栏上选择了onDomReady
,因此您定义的函数不是全局函数。请改用no wrap(head)
注意:如果使用jQuery的.bind()
方法,则不需要全局声明这些函数(请参见#5)
2.您不需要CSS窗格中的
和
3。您正在单选按钮上添加类,这没有效果。您应该执行以下操作:
<link rel='stylesheet' href='http://example.com/css/default.css' />
<script src='http://mysite.com/js/default.js'></script>
HTML
或者在这种情况下,在
元素上执行此操作
4.这只是一个样式问题,但您应该使用段落(
文本
)而不是简单的文本节点(文本
)和每行后面的换行符
5.如果不使用内联事件处理程序和内联样式,则将CSS和JS代码编写在单独的文件中,并像下面这样引用它们:
<link rel='stylesheet' href='http://example.com/css/default.css' />
<script src='http://mysite.com/js/default.js'></script>
某些事件处理程序(例如,单击
,键控
,更改
)具有速记功能:
$('#el').click(function() {
// your event handler goes here
});
6.否。在这种情况下最好使用表单
7.在两个函数中,您可以使用
.toggleClass('active')。而不是编写.addClass('active')。removeClass('inactive')
然后你就有了一个功能而不是两个功能。你也可以让它在JSFIDLE中工作,只需用javascript而不是HTML绑定你的功能。下面是一个简单的例子,也有一些改进以消除重复:
请注意:
- 背景色已移动到父元素(而不是输入)
- 您不需要在JSFIDLE CSS面板中使用
标记
- 背景色已移动到父元素(而不是输入)
- 您不需要在JSFIDLE CSS面板中使用
标记
suprsclassadd没有定义
并且amountClassAdd没有定义
一个有趣的例子,说明如果你不小心,即使是像JSFIDLE这样非常好的工具也会导致奇怪的事情发生:-)请在这里展示一些相关的代码,让这个问题对后代有用。Firebug说:surpClassAdd没有定义
,amountClassAdd没有定义
,这是一个有趣的例子,说明如果你不小心,即使是像JSFIDLE这样非常好的工具也会导致奇怪的事情发生:-)这就是我想要的说,写得很清楚!米哈伊尔:这里有一些关于你的代码的非常好的建议。@Gromix谢谢。我添加了更多的东西…以后可能还会添加更多。这就是我想说的,并且写得非常清楚!米哈伊尔这里有一些非常好的建议来帮助你编写代码。@Gromi