2011-02-08 3 views
0

я собираюсь сделать функцию на JQuery, как это:Jquery - .click(), который не делает прокрутки страницы

$(document).ready(function() { 
    $('#header_rules').click(function() { 
     // here i define myFunction() 
    }); 
}); 

<a id="header_rules" href="#">RULES</a> 

вместо

<a id="header_rules" href="#" onClick="myFunction();return false">RULES</a> 

Но я не знаю, как для предотвращения прокрутки вверху страницы с помощью jQuery после того, как кто-то щелкнет ссылку.

Фактически, я полностью избавлюсь от родной JS, что может привести к некоторым проблемам (поэтому я использую JS-инфраструктуру, такую ​​как jQuery).

Любая помощь? Приветствия

ответ

6

вызова e.preventDefault(); где e это первый аргумент обработчика щелчка:

$(document).ready(function() { 
    $('#header_rules').click(function(e) { 
     e.preventDefault(); 
     // here i define myFunction() 
    }); 
}); 

<a id="header_rules" href="#">RULES</a> 
+0

Uhm nice. Что лучше? 'e.preventDefault();' или просто 'return false;'? – markzzz

+0

'e.preventDefault()' - см. Мой комментарий к другому ответу. – ThiefMaster

3

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

(document).ready(function() { 
    $('#header_rules').click(function() { 
     // here i define myFunction() 
    return false; 
    }); 
}); 
+0

Возврат false также останавливает распространение события, которое, скорее всего, не вызовет проблем, но на самом деле не является необходимым, и в некоторых случаях оно может вызвать проблемы. – ThiefMaster

+0

Это зависит от того, хотите ли вы, чтобы щелчок вызывал что-то еще. – Matrym

2

Что сказал ThiefMaster, и вы можете также inclue return false; внутри функции Intead инлайн.

+0

Он заменил встроенный onclick дерьмо надлежащим обработчиком событий - поэтому он не вникнет в что-либо – ThiefMaster

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

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