- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前有一个(相当大的)JavaScript 文件,用于为页面上的某些元素设置动画。页面上使用了四“组”脚本,每组包含的脚本数量等于页面上教程中的步骤数。我想做的是重新编写脚本,以便它们将使用通配符定位(如果可能)而不是使用当前设置(每个函数每个步骤一个脚本)。我将提供每组的第一个脚本:
第一个例子
/* ToC List Togglers */
jQuery(document).ready(function() {
jQuery('#tutorial-toc-step-01').click(function() {
if ( jQuery('.tutorial-glyph-check-step-01').hasClass('glyphicon-unchecked') && !jQuery('#tutorial-body-step-01').hasClass('in') ) {
jQuery('.tutorial-glyph-check-step-01').removeClass('glyphicon-unchecked'),
jQuery('.tutorial-glyph-check-step-01').addClass('glyphicon-check'),
jQuery('.tutorial-glyph-chevron-step-01').removeClass('glyphicon-chevron-down'),
jQuery('.tutorial-glyph-chevron-step-01').addClass('glyphicon-chevron-up'),
jQuery('#tutorial-title-reset-step-01').removeClass('hidden');
}
else if ( jQuery('#tutorial-body-step-01').hasClass('in') ) {
jQuery('.tutorial-glyph-check-step-01').removeClass('glyphicon-unchecked'),
jQuery('.tutorial-glyph-check-step-01').addClass('glyphicon-check'),
jQuery('.tutorial-glyph-chevron-step-01').removeClass('glyphicon-chevron-up'),
jQuery('.tutorial-glyph-chevron-step-01').addClass('glyphicon-chevron-down'),
jQuery('#tutorial-title-reset-step-01').removeClass('hidden');
}
else if ( !jQuery('#tutorial-body-step-01').hasClass('in') ) {
jQuery('.tutorial-glyph-chevron-step-01').removeClass('glyphicon-chevron-down'),
jQuery('.tutorial-glyph-chevron-step-01').addClass('glyphicon-chevron-up');
}
else {
jQuery('.tutorial-glyph-chevron-step-01').removeClass('glyphicon-chevron-up'),
jQuery('.tutorial-glyph-chevron-step-01').addClass('glyphicon-chevron-down');
}
});
});
第二个例子
/* Step Panel Togglers */
jQuery(document).ready(function() {
jQuery('#tutorial-title-title-step-01').click(function() {
if ( jQuery('.tutorial-glyph-check-step-01').hasClass('glyphicon-unchecked') && !jQuery('#tutorial-body-step-01').hasClass('in') ) {
jQuery('.tutorial-glyph-check-step-01').removeClass('glyphicon-unchecked'),
jQuery('.tutorial-glyph-check-step-01').addClass('glyphicon-check'),
jQuery('.tutorial-glyph-chevron-step-01').removeClass('glyphicon-chevron-down'),
jQuery('.tutorial-glyph-chevron-step-01').addClass('glyphicon-chevron-up'),
jQuery('#tutorial-title-reset-step-01').removeClass('hidden');
}
else if ( jQuery('#tutorial-body-step-01').hasClass('in') ) {
jQuery('.tutorial-glyph-check-step-01').removeClass('glyphicon-unchecked'),
jQuery('.tutorial-glyph-check-step-01').addClass('glyphicon-check'),
jQuery('.tutorial-glyph-chevron-step-01').removeClass('glyphicon-chevron-up'),
jQuery('.tutorial-glyph-chevron-step-01').addClass('glyphicon-chevron-down'),
jQuery('#tutorial-title-reset-step-01').removeClass('hidden');
}
else if ( !jQuery('#tutorial-body-step-01').hasClass('in') ) {
jQuery('.tutorial-glyph-chevron-step-01').removeClass('glyphicon-chevron-down'),
jQuery('.tutorial-glyph-chevron-step-01').addClass('glyphicon-chevron-up');
}
else {
jQuery('.tutorial-glyph-chevron-step-01').removeClass('glyphicon-chevron-up'),
jQuery('.tutorial-glyph-chevron-step-01').addClass('glyphicon-chevron-down');
}
});
});
第三个例子
/* Chevron Togglers */
jQuery(document).ready(function() {
jQuery('#tutorial-title-chevron-step-01').click(function() {
if ( !jQuery('#tutorial-body-step-01').hasClass('in') ) {
jQuery('.tutorial-glyph-chevron-step-01').removeClass('glyphicon-chevron-down'),
jQuery('.tutorial-glyph-chevron-step-01').addClass('glyphicon-chevron-up');
}
else {
jQuery('.tutorial-glyph-chevron-step-01').removeClass('glyphicon-chevron-up'),
jQuery('.tutorial-glyph-chevron-step-01').addClass('glyphicon-chevron-down');
}
});
});
第四个例子
/* Reset Togglers */
jQuery(document).ready(function() {
jQuery('#tutorial-title-reset-step-01').click(function() {
if ( jQuery('.tutorial-glyph-check-step-01').hasClass('glyphicon-check') && jQuery('#tutorial-step-01').hasClass('in') ) {
jQuery('.tutorial-glyph-check-step-01').removeClass('glyphicon-check'),
jQuery('.tutorial-glyph-check-step-01').addClass('glyphicon-unchecked');
}
else {
jQuery('.tutorial-glyph-check-step-01').removeClass('glyphicon-check'),
jQuery('.tutorial-glyph-check-step-01').addClass('glyphicon-unchecked');
}
});
});
正如您可能猜到的那样,当前的设置在具有多个步骤的页面上会变得有点麻烦(并且在具有数十个步骤的页面上几乎行不通)。如果可能的话,我想重新编写这些脚本,以便无论步骤数如何,它们都能正常工作。从脚本中可以看出,这些步骤及其元素已系统且彻底地进行标识和分类,这在一定程度上应该有所帮助。如有必要,可以编辑 HTML 以包含 fid 或其他属性/元素,以使 jQuery 更具功能性或更易于使用。
出于引用目的,这里是一个实际使用这些脚本的页面:http://wordpress.omnifora.com/tutorials/create-a-button-to-change-the-font-on-your-site/ .
任何帮助/建议将不胜感激。
最佳答案
我将为您提供第一个 block 的示例。你有 #tutorial-toc-step-01
。因此,给所有类似的元素一个类,例如 tutorial-toc-step-c
并将数字保存在附加字段中,例如 data-stepnum='01'
。然后,代码的开头是这样的:
/* ToC List Togglers */
jQuery(document).ready(function() {
jQuery('.tutorial-toc-step-c').click(function() {
var stepnum = $(this).data('stepnum');
if ( jQuery('.tutorial-glyph-check-step-'+stepnum).hasClass('glyphicon-unchecked') && !jQuery('#tutorial-body-step-'+stepnum).hasClass('in') ) {
jQuery('.tutorial-glyph-check-step-'+stepnum).removeClass('glyphicon-unchecked'),
jQuery('.tutorial-glyph-check-step-'+stepnum).addClass('glyphicon-check'),
...
我想,这个想法是可以理解的。您必须以类似的方式重写这四个 block 中的每一个。
顺便问一下,除了被点击的元素 id
之外,第一个和第二个代码是否完全相同?
关于jquery - 返工 jQuery 脚本以利用类/Id 的通配符定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20241241/
考虑以下伪代码: x1 = DEFAULT_VAL_1; y1 = DEFAULT_VAL_2; for (i = 0; i y0*x1) { x1 = x0;
我需要有关 MYSQL 中以下查询的一些帮助。 我有以下 SQL 表: LINK 我需要计算以下内容: 1。查询:按阶段返工次数 例如(基于orderid 749,请参阅链接)该订单在第01阶段已经有
我需要更改当前代码,以便在调用 EventWaitHandle.WaitOne 时不阻塞当前线程。问题是我正在等待系统范围的事件。我还没有找到任何合适的替代品。 代码: EventWaitHandle
我有一个 std::vector 指针 Person 对象,它有一个成员函数 std::string getName() const。我想使用 STL 算法计算 vector 中的所有 Person
我目前有一个(相当大的)JavaScript 文件,用于为页面上的某些元素设置动画。页面上使用了四“组”脚本,每组包含的脚本数量等于页面上教程中的步骤数。我想做的是重新编写脚本,以便它们将使用通配符定
下面是我的makefile # Location of the CUDA Toolkit CUDA_PATH ?= /usr/local/cuda-6.0 NVCC := $(CUDA_PATH)/
我的计算机上有一些虚拟机,它们通过主机专用网络相互通信。 我想模拟这些机器之间的中间人攻击。我发现的所有运行 MITM 的工具都只是监视数据包,但我没有找到任何可以真正重放或更改它们的工具。 我发现了
我是一名优秀的程序员,十分优秀!