在哪里添加jquery“this”?

时间:2010-09-20 13:00:12

标签: javascript jquery

$(window).load(function() {
    var paircount = 0;
    var $thisSprite = $("#%id% img.imageStyle");

    if ($.browser.msie)
    {
        // I need this only if desaturate png with aplha channel
        $thisSprite = $thisSprite.desaturateImgFix();
    }

    // modified not to desaturate the clone
    $thisSprite.each(function(){
     $(this).addClass("%id%")
      .clone()
      .attr('id', '')
      .addClass('color')
      .hide()
      .insertAfter($(this))
    });

    // desaturate all occourances
    $thisSprite = $thisSprite.desaturate();

    // Need to remove this instance of the desaturated origonal below on hover
    // currently shows both on hover...???????????
    // add events for switch between color/gray versions
    $('.centered_image').bind('mouseenter mouseleave', function(e){
     $(this).find('img').toggle().toggleClass('color');
    });

});

http://www.doobox.co.uk/test/test.html

的新测试

亲切的问候 加里。

4 个答案:

答案 0 :(得分:1)

如果您使用JQuery,则按以下方式使用 -

$('#id',this).hide();

希望这会对你有所帮助。

答案 1 :(得分:0)

我没有看到循环,这似乎混淆了一些事情:(如果你在这里缩小,请小心)

 $thisSprite.addClass("pair%id%_" + ++paircount);

似乎等同于:

$thisSprite.addClass("pair%id%_" + 1);

,如果你将其分解为:

 $thisSprite.addClass("pairsomeIDhere_1");

你的CSS中有这样的课吗?

 var classString = new String($(this).attr('class'));

可以简单地说:

 var classString = $(this).attr('class');

变化:

$thisSprite.bind("mouseenter mouseleave", desevent);       
$cloned.bind("mouseenter mouseleave", desevent);       

传递活动:

$thisSprite.bind("mouseenter mouseleave", desevent(event));       
$cloned.bind("mouseenter mouseleave", desevent(event));   

答案 2 :(得分:0)

从查看测试页面,我认为问题是您需要遍历每个图像。我试过测试这个,但我遇到了麻烦,很遗憾这个脚本没有经过测试:

$(window).load(function() {

    if ($.browser.msie)
    {
      // You need this only if desaturate png with aplha channel
      $thisSprite = $thisSprite.desaturateImgFix();
    }

    $thisSprite.each(function(){
     $(this).clone()
      .removeAttr('id')
      .addClass('color')
      .hide()
      .insertAfter($(this))
      .desaturate();
    });

    // add events for switch between color/gray versions
    $('.centered_image').bind('mouseenter mouseleave', function(e){
     $(this).find('img, canvas').toggle().toggleClass('color');
    });
});

答案 3 :(得分:0)

最后到那里感谢指点,非常有帮助。

 $(window).load(function() {


        var paircount = 0;
        var $thisSprite = $("#%id% img.imageStyle");




        if ($.browser.msie)
        {
          // I need this only if desaturate png with aplha channel
          $thisSprite = $thisSprite.desaturateImgFix();
        }

    // modified not to desaturate the clone
    $thisSprite.each(function(){
     $(this).addClass("%id%pair")
      .clone()
      .attr('id', '')
      .insertAfter($(this))
      .addClass('%id%color')
      .hide()
    });

    // desaturate all occourances
     $thisSprite.desaturate()


     // Need to remove this instance of the desaturated origonal below on hover


    // add events for switch between color/gray versions
    $('.container').bind('mouseenter mouseleave', function(e){
     $(this).find('.%id%pair').toggle().toggleClass('%id%color');
    });

 });