Как я могу преобразовать этот рабочий код JAVASCRIPT в JQUERY - PullRequest
0 голосов
/ 22 мая 2009
 <script language="javascript" type="text/javascript">


function hasPasswordChanged(value)
  {
        if(value == '1')
        {
            var container = document.getElementById("sNav");
            if(document.getElementsByTagName)
            {
               var hyperLinkList = container.getElementsByTagName("a");

               for(var currentLink in hyperLinkList)
               {
                    hyperLinkList[currentLink].disabled = true;
                    hyperLinkList[currentLink].onclick =function () { return false;}

               }

            }
        }
  }


  window.onload = function () 
  {
        hasPasswordChanged('<%  = HasPasswordAlreadyChanged %>');
  }

</script>

Ответы [ 6 ]

10 голосов
/ 22 мая 2009

Предполагая, что я прав, вы хотите отключить навигационные ссылки на странице, если пароль уже был изменен (1 - истина).

$(function() {
   var changed = <%= HasPasswordAlreadyChanged %>;
   if (changed) {
      $('#sNav a').attr('disabled','disabled')
                  .click( function() { return false; } );
   }
});
1 голос
/ 22 мая 2009
<script language="javascript" type="text/javascript">
  $(function(){
    if ('<%  = HasPasswordAlreadyChanged %>' == '1') {
      $("#sNav").find("a").attr("disabled","disabled").click(function(){return false;});
    }
  });
</script>
1 голос
/ 22 мая 2009
function hasPasswordChanged(value)
  {
        if(value == '1')
        {
            $('#sNav a').attr('disabled', 'true').click(function(){ return false; });
        }
  }

$(function(){
    hasPasswordChanged('<%  = HasPasswordAlreadyChanged %>');
})

или немного страннее:

$(function(){
    <%  = HasPasswordAlreadyChanged %> == 1 ? $('#sNav a').attr('disabled', 'true').click(function(){ return false; }) : ""; 
});
0 голосов
/ 26 мая 2009

Поскольку ваш JavaScript работает, вероятно, нет смысла преобразовывать его в jQuery, рискуя внести какие-либо ошибки.

Единственное, что я мог бы рассмотреть, это использовать обработку событий jQuery, а не явно использовать window.onload :

function hasPasswordChanged() {
    // unchanged
}

$(document).ready(function() {
    hasPasswordChanged('<%  = HasPasswordAlreadyChanged %>');
});
0 голосов
/ 22 мая 2009
function hasPassWordChanged(value) {
  if (value == '1') {
    $("#sNav a").attr("disabled", true).click(function() {return false;});
  }
}

$(function() {
  hasPasswordChanged('<%  = HasPasswordAlreadyChanged %');
});

Это выбирает все a теги, которые являются дочерними элементами узла с идентификатором sNav, устанавливает для всех их отключенных атрибутов значение true и устанавливает указанную возвращаемую функцию false, которая будет вызываться при событии click.

Последняя часть, вызов $() с указанной функцией, запускает функцию, когда DOM готов к работе, и является синонимом для $(document).ready() при передаче функции. Вы также можете заменить это настройкой window.onload, но вызов $() предпочтительнее с jQuery.

0 голосов
/ 22 мая 2009

Предполагается, что HasPasswordAlreadyChanged имеет значение 0 или 1 (или flase / true)

jQuery(function($){
  !!<%= HasPasswordAlreadyChanged %> && $("#sNav a").attr("disabled",true).click(function(){return false;})
})

Кроме того, влияет ли отключенный атрибут элемента A на него каким-либо образом?

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