2012-03-02 3 views
0

Привет Я пытаюсь посмотреть, какие события активируются, как предложено в the following link. Однако я не вижу предупреждений .. что здесь не так?последовательность событий тестирования с использованием jquery

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <title> test ground</title> 

    <!-- JQuery specific --> 
    <script type="text/javascript" src="libs/jQuery/jQuery.min.js" ></script> 

    <script> 
    $(document).ready(function() { 
     $.each([ 
      'blur', 'change', 'click', 'contextmenu', 'copy', 
      'cut', 'dblclick', 'error', 'focus', 
      'keydown',   'keypress',   'keyup', 
      'mousedown',   'mousemove',   'mouseout', 
      'mouseover',   'mouseup', 
      'mousewheel',   'paste', 
      'reset',   'resize', 
      'scroll',   'select', 
      'submit', 
      // W3C events 
      'DOMActivate',   'DOMAttrModified',   'DOMCharacterDataModified', 
      'DOMFocusIn',   'DOMFocusOut',   'DOMMouseScroll', 
      'DOMNodeInserted',   'DOMNodeRemoved',   'DOMSubtreeModified', 
      'textInput', 

      // Microsoft events 
      'activate', 
      'beforecopy', 
      'beforecut', 
      'beforepaste', 
      'deactivate', 
      'focusin', 
      'focusout', 
      'hashchange', 
      'mouseenter', 
      'mouseleave' 
     ], function() { 
      $('a').live(this, function (evt) { 
       alert(this); 
      }); 
     }); 
    }); 
    </script> 
</head> 
<body> 
<a href="http://www.google.com"> test </a> 
</body> 
</html> 
+0

У меня есть тестовый код с jquery.1.3.1, и он будет предупреждать ссылку на hower тестовой ссылки. пожалуйста, измените ваш jquery с более новой версией –

+0

, на какой планете 1,3 новых? – charlietfl

ответ

1

Я предполагаю, что это в контексте обратного вызова заворачивают в качестве объекта и, следовательно, вопрос я думаю (проверено в Firefox и Chrome последних версий.) Измените обратный вызов:

function (a, b) { 
     $('a').live(b, function (evt) { 
       alert(evt.type); 
     }); 
} 

или

function() { 
     $('a').live(this.toString(), function (evt) { 
       alert(evt.type); 
     }); 
} 

Будет ли обновлять сообщение с более подробным описанием, как только я выясню причину, по которой это обернуто как объект.

+0

Спасибо, это работает, однако предупреждение - это имя ссылки, как мне изменить это, чтобы напечатать имя события? Я попробовал evt.toString(), но это не кажется правильным. То же самое с этим .. evt.name также не работает. – Kiran

+0

Обновлено сообщение для предупреждения о событии – Chandu

0

Первый раз, когда вы звоните this это объект - сделать его строку

$('a').live(this.toString(), function (evt) {     
0

Попробуйте это:

<script> 
$(document).ready(function() { 
    var el = $("#doIt"); 

    $.each([ 
     'blur', 'change', 'click', 'contextmenu', 'copy', 
     'cut', 'dblclick', 'error', 'focus', 
     'keydown',   'keypress',   'keyup', 
     'mousedown',   'mousemove',   'mouseout', 
     'mouseover',   'mouseup', 
     'mousewheel',   'paste', 
     'reset',   'resize', 
     'scroll',   'select', 
     'submit', 
     // W3C events 
     'DOMActivate',   'DOMAttrModified',   'DOMCharacterDataModified', 
     'DOMFocusIn',   'DOMFocusOut',   'DOMMouseScroll', 
     'DOMNodeInserted',   'DOMNodeRemoved',   'DOMSubtreeModified', 
     'textInput', 

     // Microsoft events 
     'activate', 
     'beforecopy', 
     'beforecut', 
     'beforepaste', 
     'deactivate', 
     'focusin', 
     'focusout', 
     'hashchange', 
     'mouseenter', 
     'mouseleave' 
    ], function (index, value) { 
     el.on(value, function (evt) { 
      console.log("Whatever %o", this); 
     }); 
    }); 
}); 
</script> 

В основном удостоверились только один раз захватить элемент (не нужно вызывать JQuery лодка-загрузка), а затем взял имя события из функции, называемой .each().

1

Я скопировал исходный код из столбца переполнения, и он отлично сработал для меня. вот ссылка на jsfiddle

+0

Просто понял, что я использую этот вместо evt.type .. спасибо – Kiran

-2

Сначала Вы должны указать тип сценария в вашем второго тега сценария. затем укажите тип события в $ .live ("click", function() {});

<script type="text/javascript"> 
$(document).ready(function() { 
    $.each([ 
     'blur', 'change', 'click', 'contextmenu', 'copy', 
     'cut', 'dblclick', 'error', 'focus', 
     'keydown',   'keypress',   'keyup', 
     'mousedown',   'mousemove',   'mouseout', 
     'mouseover',   'mouseup', 
     'mousewheel',   'paste', 
     'reset',   'resize', 
     'scroll',   'select', 
     'submit', 
     // W3C events 
     'DOMActivate',   'DOMAttrModified',   'DOMCharacterDataModified', 
     'DOMFocusIn',   'DOMFocusOut',   'DOMMouseScroll', 
     'DOMNodeInserted',   'DOMNodeRemoved',   'DOMSubtreeModified', 
     'textInput', 

     // Microsoft events 
     'activate', 
     'beforecopy', 
     'beforecut', 
     'beforepaste', 
     'deactivate', 
     'focusin', 
     'focusout', 
     'hashchange', 
     'mouseenter', 
     'mouseleave' 
    ], function (en, ev) { 
     $('a').live('click', function (evt) { 
      alert(ev); 
     }); 
    }); 
}); 
</script> 

 Смежные вопросы

  • Нет связанных вопросов^_^