Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Когда понадобилось сделать .another-link1 (который гипотетически находится вообще в другом файле, просто должен открывать тоде самое окно), пришлось повторить весь код, отвечающий за показ
$('#not-envents .link1, #not-envents .another-link1')можно было просто добавить через запятую селектор в первый вызов:Я же как раз написал, что описание поведения элементов, которые должны открывать один и тот-же блок (имеются ввиду .link1 и .another-link1) может быть разнесено по разным js-файлам, или по крайней мере по разным логическим местам одного файла (например, .link1 это ссылка в сайдбаре, а .another-link1 — на главной, описание их одним селектором явно не добавит коду читаемости).
$("p").click( function (event, a, b) {
// when a normal click fires, a and b are undefined
// for a trigger like below a refers to "foo" and b refers to "bar"
} ).trigger("click", ["foo", "bar"]);
* This source code was highlighted with Source Code Highlighter.<a href="#" class="link" name="window1">show 1</a>
<a href="#" class="link" name="window2">show 2</a>
...
$('#envents .link').click(function(){
$('#envents .'+$(this).attr('name')).trigger('showfloat');
return false;
})
* This source code was highlighted with Source Code Highlighter.
<a class="link" href="#target">click me</a>
<div id="target"></div>
...
$('.link').click(function() {
$(this).attr('href').trigger('showFloat');
return false;
}}
А как сделать, чтобы окно не прыгало к этому якорю?Нужно чтобы на странице не такого якоря. Текстовые параметры передаются в этой же строке. С объектами сложнее.
$().bind('test', function() { window.console.log('test1') })
$().bind('test', function() { window.console.log('test2'); throw 'Error!'; })
$().bind('test', function() { window.console.log('test3') })
$().trigger('test');
...
test1
test2
Error!
<a id='target'>click me</a>
$('#target').get(0).addEventListener('click', function(e) { window.console.log('test1') }, false)
$('#target').get(0).addEventListener('click', function(e) { window.console.log('test2'); throw "Error1"; }, false)
$('#target').get(0).addEventListener('click', function(e) { window.console.log('test3') }, false)
...
test1
test2
test3
Error!
Пример использования пользовательских событий