jQuery - остановка якоря <a>от перенаправления с помощью onClick = "function (this)" - PullRequest
0 голосов
/ 07 января 2019

это мой якорь, который я использую в нумерации страниц CodeIgnitor.

<a href="http://perfex_crm.ng/clients/get_front_page_jobs/2" onclick="myFunction(this)" data-ci-pagination-page="2">2</a>

Теперь это определение функции в Javascript

function myFunction(e){
    console.log(e);
    e.preventDefault()
}

Теперь e - это якорь, который отображается в консоли. но когда я пытаюсь

e.preventDefault()

это дает мне эту ошибку.

e.preventDefault is not a function

и, очевидно, страница перенаправлена, что является оригинальной проблемой, которую я хочу решить. я не хочу его перенаправлять.

Ответы [ 3 ]

0 голосов
/ 07 января 2019

Вы передаете значение this, которое является элементом <a>, а не объектом события.

Вместо этого вы можете передать event, но вам действительно следует избегать использования внутренних атрибутов событий (которые имеют кучу ошибок) и переключиться на addEventListener.

const links = document.querySelector('[data-ci-pagination-page]');
for (let i = 0; i < links.length; i++) {
    links[i].addEventListener(myFunction); 
}
0 голосов
/ 07 января 2019

это похоже на заклинание:

function myFunction(event){
  event.preventDefault();
}
<a href="http://perfex_crm.ng/clients/get_front_page_jobs/2" onclick="myFunction(event)" data-ci-pagination-page="2">2</a>
0 голосов
/ 07 января 2019

Поскольку вы написали onclick="myFunction(this)", вы передаете this в качестве аргумента, где this - ваш <a> элемент.

Попробуйте передать event вместо: onclick="myFunction(event)"

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