【发布时间】:2012-12-01 09:49:20
【问题描述】:
我正在尝试使用变量或其他一些 jQuery 技术找到一个解决方案,以使我能够完全缩短以下代码。
例如,我如何能够将“ptn_”设置为变量/常量并让 jquery 选择数字?
或者,从长远来看,我是否可以只使用几个简单的变量来使事情变得更整洁、更容易?
如果我想添加更多项目,我是否可以简单地添加 HTML 代码,让 jQuery 代码从 CSS 中提取图像并在单击特定 ID 时显示它?
我有点困惑如何解决这个问题,是的,谷歌是你的朋友,不,我在任何地方都没有找到真正的解决方案 :P 我希望有人能阐明如何改变这一点。我不指望这项工作对我有用,只是某种形式的解决方案。
凌乱的 jQuery:
.four
是容器
.headercolor
是容器内的标题颜色类。
.patternwrap
当#ptn_X ID 被点击时,将显示模式的主体包裹的 div。
这个函数会改变包含 div 的整个容器。
$(function(){
$('.button-preview').on('click', function() {
$('.mainbody').css('background', 'rgba(0,0,0,0.4)');
$('.four, .headercolor').css('color', '#fff');
})
以下是模式。
$('#ptn_1').on('click', function() {
$('.patternwrap').css('background-image', 'url(images/img/ptn_00001.png)');
})
$('#ptn_2').on('click', function() {
$('.patternwrap').css('background-image', 'url(images/img/ptn_00002.png)');
})
$('#ptn_3').on('click', function() {
$('.patternwrap').css('background-image', 'url(images/img/ptn_00003.png)');
})
$('#ptn_4').on('click', function() {
$('.patternwrap').css('background-image', 'url(images/img/ptn_00004.png)');
})
});
HTML Button,点击后会根据 ID 显示 jquery 选择器:
<div class="button-preview" id="ptn_1">Preview</div>
<!-- Div container displaying the pattern PREVIEW -->
<div class="pattern" id="ptn_00001"></div>
CSS:
#ptn_00001 {background:url(../images/cfpatterns/ptn_00001.png)}
#ptn_00002 {background:url(../images/cfpatterns/ptn_00002.png)}
#ptn_00003 {background:url(../images/cfpatterns/ptn_00003.png)}
#ptn_00004 {background:url(../images/cfpatterns/ptn_00004.png)}
非常感谢。
【问题讨论】: