Как изменить источник изображения в JavaScript через массив? - PullRequest
1 голос
/ 25 февраля 2011

У меня есть сетка со столбцом шаблона, и в этом столбце у меня есть текст и значок,
при значке при наведении курсора (в режиме) и при наведении курсора мыши (в выключенном режиме) Я меняю значок.

Теперь, когда пользователь нажимает на значок, он открывает всплывающее окно, и значок должен быть в режиме «Вкл.», Но если пользователь, не закрывая, нажимает значок другой строки, тогда предыдущий должен быть выключен, а текущий должен быть включен..

Итак, для этого я написал это:

<DataItemTemplate>
    <div class="floatLeft titleBlock">
                        <a href="<%# Eval("Link") %>" class="ellipsesTooltip"><span>
                            <%# Container.Text%></span><%# Container.Text%></a></div>
                    <div class="floatRight">
                        <a onclick="GridValueCatcherMoreLike(this, '<%# Eval("ResearchNoteId").ToString()%>');">
                            <img alt="+/- 30 days matching Author, Industry, Theme" src="../Image/Research/MoreByOff.gif" onClick="check(this,'../Image/Research/MoreByOn.gif', '../Image/Research/MoreByOn.gif');"
                                onmouseover="ToggleAuthorMoreLikeImage(this, 'MoreLikePopUp', '../Image/Research/MoreByOn.gif', '../Image/Research/MoreByOff.gif');"
                                onmouseout="ToggleAuthorMoreLikeImage(this, 'MoreLikePopUp', '../Image/Research/MoreByOff.gif', '../Image/Research/MoreByOff.gif');" />
                        </a>
                    </div>

function check(sender, onImg, offImg) {   
    debugger;
    for(var i=0;i<activeImgList.length;i++)
    {        
        if(sender!=activeImgList[i])
            activeImgList[i].scr = offImage;   
        else     
            activeImgList[i].scr = onImg;
    } 
    return true;
}



function ToggleAuthorMoreLikeImage(sender, popupname, imageurl, offImageurl)
{
    var win = ResearchPopup.GetWindowByName(popupname);
    if (!ResearchPopup.IsWindowVisible(win))
    {        
        sender.src=imageurl;
        activeImgList[arrayIndex]=sender;
        arrayIndex = arrayIndex + 1;
    }
    else
    {
        activeImgList[arrayIndex] = sender;
        arrayIndex = arrayIndex + 1;   
        return;
    }
}

1 Ответ

0 голосов
/ 25 февраля 2011

Почему бы не сделать шаг назад и использовать что-то вроде jQuery.toggleClass () или jQuery.hover () на стороне клиента?

.hover ()

<!DOCTYPE html>
<html>
<head>
  <style>
  ul { margin-left:20px; color:blue; }
  li { cursor:default; }
  span { color:red; }
</style>
  <script src="http://code.jquery.com/jquery-1.5.js"></script>
</head>
<body>
  <ul>
    <li>Milk</li>
    <li>Bread</li>
    <li class='fade'>Chips</li>

    <li class='fade'>Socks</li>
  </ul>
<script>
$("li").hover(
  function () {
    $(this).append($("<span> ***</span>"));
  }, 
  function () {
    $(this).find("span:last").remove();
  }
);   

//li with fade class
$("li.fade").hover(function(){$(this).fadeOut(100);$(this).fadeIn(500);});

</script>

</body>
</html>

.toggleClass ()

<!DOCTYPE html>
<html>
<head>
  <style>

  p { margin: 4px; font-size:16px; font-weight:bolder; 
      cursor:pointer; }
  .blue { color:blue; }
  .highlight { background:yellow; }
  </style>
  <script src="http://code.jquery.com/jquery-1.5.js"></script>
</head>
<body>
  <p class="blue">Click to toggle</p>
  <p class="blue highlight">highlight</p>
  <p class="blue">on these</p>
  <p class="blue">paragraphs</p>
<script>
    $("p").click(function () {
      $(this).toggleClass("highlight");
    });
</script>

</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...