Добавить прослушиватель событий в Anchors с классом + всплывающий URL - PullRequest
1 голос
/ 16 марта 2012

Так что у меня есть странное предрассудок, когда я не могу добавить клик к тегам привязки. Я должен добавить слушателей событий / прикрепить событие. Я хочу иметь возможность добавить класс к якору, и после того, как документ будет готов, создайте прослушиватель событий и откройте всплывающее окно с URL-адресом ссылок. Поэтому мне нужно собрать якоря, собрать URL-адреса и открыть их в новом окне.

Я пытался создать его с помощью смеси jquery / javascript:

Пользовательский скрипт Jquery / JS

$(document).ready(function() {
    $numClass = document.getElementsByClassName('popUp');
    $className = 'popUp';
    $left = (screen.width/2)-(650/2);
    $top = (screen.height/2)-(400/2);

    alert($className[1]);

    for(i = 0; i < $numClass; i++)
    {
        if($className[i].addEventListener)
        {
            $className[i].addEventListener('click', function(e){
                getHref();
            },true);
        }
        else{
            $className[i].attachEvent('click', getHref);
        }
    }

    function openWindow($url){
        window.open(url, "location=1,status=1,scrollbars=1,width=650,height=400,left="+left+",top="+top);
    }

    function getHref(){
        $href = className.getAttribute('href');
        openWindow($href);
    }
});

но получается, длина просто воспитывает персонажей. Тогда я нашел этот скрипт онлайн:

Online Script

$(document).ready(function() {
    var elArray = document.getElementsByTagName('a');
    for(var i=0; i<elArray.length; i++){
      if(elArray[i].className == 'popUp') continue;
        for(var j=0; j<elArray.length; j++){
            elArray[j].onclick = function(){
                alert(this.innerHTML + ' : ' + this.href);
            };
        }
    }
});

что немного короче, но просто не работает, без ошибок просто не работает. У кого-нибудь есть исправления для этого?

Мой весь HTML Doc

<html>
<head>

<script type="text/javascript" src="jquery1.6.4.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        var elArray = document.getElementsByTagName('a');
        for(var i=0; i<elArray.length; i++){
          if(elArray[i].className == 'popUp') continue;
            for(var j=0; j<elArray.length; j++){
                elArray[j].onclick = function(){
                    alert(this.innerHTML + ' : ' + this.href);
                };
            }
        }
    });
</script>
</head>
<body>

<a href="http://www.yahoo.com" class="popUp">test1</a>
<a href="http://www.google.com" class="popUp">test2</a>
<a href="http://www.msn.com" class="popUp">test3</a>

</body>
</html>

Ответы [ 3 ]

3 голосов
/ 16 марта 2012

Это должно сработать:

$(document).ready(function() {
    $('.popUp').on('click', function() {
         openWindow(this.href);
         return false;
    });
});

function openWindow(url){
    var left = (screen.width/2)-(650/2);
    var top = (screen.height/2)-(400/2);

    window.open(url, '_blank', "location=1,status=1,scrollbars=1,width=650,height=400,left="+left+",top="+top);
}
1 голос
/ 16 марта 2012
$(document).ready(function() {
    $('.popUp').click(openWindow)
});



function openWindow(){

   var left = (screen.width/2)-(650/2);
   var top = (screen.height/2)-(400/2);

    window.open(this.href, "location=1,status=1,scrollbars=1,width=650,height=400,left="+left+",top="+top);
    return false;
}
1 голос
/ 16 марта 2012

Это должно работать:

$(document).ready(function() {

    $('a.popup').click(function(event) {
        event.preventDefault();
        openWindow($(this).attr('href');
    });

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