Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jqueryaddclass奇怪的问题_Javascript_Jquery_Html_Css_Addclass - Fatal编程技术网

Javascript jqueryaddclass奇怪的问题

Javascript jqueryaddclass奇怪的问题,javascript,jquery,html,css,addclass,Javascript,Jquery,Html,Css,Addclass,我的代码在这里 所有js都能正常工作,并添加/删除css类(在ChromeJS控制台中检查) 但不活跃的风格不适用:( 我希望radiobutton字段上的灰色背景不可选择。这是因为您已通过左pannel JSFIDLE控件将代码放入“DOM就绪”处理程序。这些函数不是全局函数 尝试更改函数的定义。而不是 function surpClassAdd() { 试一试 现在,在实际代码中显然不需要这样做。另一个(更好的)方法是停止使用“onchange”属性绑定事件处理程序,并使用jQuery(因

我的代码在这里 所有js都能正常工作,并添加/删除css类(在ChromeJS控制台中检查) 但不活跃的风格不适用:(
我希望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中使用它,只需用javascript而不是HTML绑定您的函数即可。下面是一个简单的示例,也进行了一些清理以消除重复:

请注意:

  • 背景色已移动到父元素(而不是输入)
  • 您不需要在JSFIDLE CSS面板中使用
    标记

请在这里展示一些相关的代码,让这个问题对后代有用。Firebug说:
suprsclassadd没有定义
并且
amountClassAdd没有定义
一个有趣的例子,说明如果你不小心,即使是像JSFIDLE这样非常好的工具也会导致奇怪的事情发生:-)请在这里展示一些相关的代码,让这个问题对后代有用。Firebug说:
surpClassAdd没有定义
amountClassAdd没有定义
,这是一个有趣的例子,说明如果你不小心,即使是像JSFIDLE这样非常好的工具也会导致奇怪的事情发生:-)这就是我想要的说,写得很清楚!米哈伊尔:这里有一些关于你的代码的非常好的建议。@Gromix谢谢。我添加了更多的东西…以后可能还会添加更多。这就是我想说的,并且写得非常清楚!米哈伊尔这里有一些非常好的建议来帮助你编写代码。@Gromi