0

我正在寻找重写以下代码,以便在第一次单击时不仅更改选择器元素的图像 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');
      });
4

1 回答 1

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
    }
});

它能做什么:

  1. 设置初始状态 -not_clicked
  2. 在点击的情况下:
    • 如果当前状态clicked设置为not_clicked(重置)并运行脚本
    • else - 将状态更改为clicked并运行脚本。
于 2012-07-15T19:58:55.190 回答