Как сделать элемент тега <a>для запуска нескольких функций с помощью javascript / jquery - PullRequest
2 голосов
/ 24 февраля 2012

На моей веб-странице есть ссылка, сама ссылка запускает функцию, которую я не смог изменить, но я хочу, чтобы при нажатии ссылки также вызывали другую функцию JavaScript в то же время или предпочтительно после того, как первая функциясделанный.Таким образом, одним щелчком мыши вызвать две функции ... это может быть реализовано?Спасибо

<a title="Next Page" href="javascript:__doPostBack('Booklet1','V4504')">Next</a>

- это образец тега, который я хочу изменить, как можно заставить его также вызывать «myFunc» в то же время или предпочтительно после выполнения _doPostBack.

PS параметр функции для _doPostBack, такой как V4504, динамически генерируется пользовательским элементом управления ASP.Поэтому я не могу просто рассматривать ее как статическую функцию и связывать ее с другой.Я думаю, что я мог только добавить какую-то функцию к нему?Если сначала я не проанализирую всю страницу и не извлеку имя функции с ее текущими параметрами ... Так как каждый раз, когда я нажимаю на ссылку, параметр, такой как V4504, меняет свое значение ....

Спасибо!

Ответы [ 3 ]

2 голосов
/ 24 февраля 2012

Вы должны иметь возможность прикрепить несколько обработчиков событий к одному тегу привязки, либо с помощью .onclick или .addEventListener('click', function)

https://developer.mozilla.org/en/DOM/element.addEventListener

1 голос
/ 24 февраля 2012

Вы можете прикрепить обработчик к событию щелчка элемента, используя обычный Javascript, таким образом:

function hello()
{
    alert("Hello!")
}
var element = document.getElementById("YourAElementID");
if (element.addEventListener)
{
    element.addEventListener("click", hello, false);
}
else
{
    element.attachEvent("onclick", hello);
}

Поддерживает все распространенные браузеры.

1 голос
/ 24 февраля 2012

Да, вы можете сделать это МНОГИМИ способами (я использую и $(this), и $('identifier'), поскольку вы не говорите, как связаны функции):

$(this).click(function(){
   my_function_1();
   my_function2()
});

или

$('my element').click(function(){
   my_function_1();
});
$('my element').click(function(){
   my_function_2();
});

Или, если функции находятся в другом объекте:

$(this).click(function(){
   my_function_1();
   $('#other_element_id').trigger('click'); //there are a bunch of syntaxes for this
});

Sans JQuery, вы можете использовать:

var myObj  = document.getElementById('element name');
myObj.addEventListener('click', function(){
   alert('first!');
});
myObj.addEventListener('click', function(){
   alert('second!');
});

Нажатие приведет к двум последовательным предупреждениям

...