我正在寻找重写以下代码,以便第一次单击时只需更改选择器元素的图像src,第二次单击将更改图像src为images / spacer.gif,任何后续点击将只是在附加图像src并用间隔符替换它之间循环。因为这个函数使用了单选按钮和(事件),所以如果可能的话,我想远离.toggle。下面的代码块仅适用于第一个函数。
$('.item-button').click(function(event) {
var layerID = $(this).attr('data-layer');
var itemID = $(this).attr('data-item');
var selector = '#layer-' + layerID;
//an itemID of 0 means the item doesn't exist.
if (itemID == 0) {
$('#layer-' + layerID).attr('src', 'images/spacer.gif');
} else {
var imageSrc = $(this).parent().find('img').attr('id');
$(selector).attr('src', imageSrc);
}
},
//a second nonfunctional function to change the src to the spacer in case the same radio button is clicked twice.
function(){
$('#layer-' + layerID).attr('src', 'images/spacer.gif');
});
答案 0 :(得分:0)
我会给你一个你可以自定义的片段,而不是查看你的代码:
//set initial status
$('element').data('status','not_clicked');
$('element').click(function(){
if( $(this).data('status') == 'clicked' ) {
$(this).data('status','not_clicked');
//your code in case of second click
} else {
$(this).data('status','clicked');
//your code in case of first click
}
});
它的作用:
not_clicked
clicked
,则将其设置为not_clicked
(重置)并运行脚本clicked
并运行脚本。