我是jquery的新手,并尝试使用它。我想在锚链接上注册一个onclick事件,并避免将其带到下一页。为此,我写了以下内容。
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$('li > a').onclick = hitme;
});
function hitme() {
alert('You will not be able to go to the next page!!!');
return false;
}
</script>
</head>
<body>
<h1>My First Heading with JQuery</h1>
<p>This is homepage wireframe!!!</p>
<ul>
<li><a href="http://google.com">Click me and go to google!!!</a></li>
</ul>
</body>
</html>
我在这里做错了什么?
更新
我将脚本从onclick更改为click,但在页面加载时将我带到下一页。我尝试使用event.stopPropogation和event.defaultPropogation但它无法正常工作,这是我的更新代码:
<script type="text/javascript">
$(function() {
$('li > a').get(0).click (function(event){
hitme();
event.preventDefault();
return false;
});
})
function hitme() {
alert('You will not be able to go to the next page!!!');
}
</script>
我在做什么蠢事?
答案 0 :(得分:4)
.onclick
是DOM对象的属性,而不是jQuery对象。
请尝试以下任一方法:
$(function() {
$('li > a').each(function() { this[0].onclick = hitme; });
});
$(function() {
$('li > a').click(function() { return hitme(); });
});
答案 1 :(得分:1)
您可以随时查看jQuery文档:http://api.jquery.com/click/
$(function() {
$('li > a').onclick = hitme;
});
应该是
$(document).ready(function() {
$('li > a').click(function(){
hitme()
});
});
答案 2 :(得分:1)
我认为onclick
是Javascript; click()
事件是jQuery特定的等价物:
$('li > a').click(hitme);
或者,如果您的函数不被接受作为参数参数(无论出于何种原因):
$('li > a').click(function() {
hitme();
});
答案 3 :(得分:0)
尝试以下
$(selector).click(function(event){
//for preventing default behaviour on which click is performed
event.preventDefault();
});
如果要在on fly
上创建的元素上注册click事件,请使用jquery live方法 $(selector).live('click',function(event){
//for preventing default behaviour on which click is performed
event.preventDefault();
});
答案 4 :(得分:0)
你可以尝试这样的事情
$('li a').click(function (event) {
alert('i am clicked and not navigated');
event.preventDefault();
return false;
});
答案 5 :(得分:-1)
使用$('li > a').click(hitme);
答案 6 :(得分:-1)
我不会在这里做出太多贡献,因为已经说过了。但为了荣耀,我怀疑正确的语法应该是:
$(document).ready(function() {
$(".mytarget").click(function({
hitme();
});
});
不要忘记document.ready,因为如果页面加载缓慢且某个事件发生时尚未加载div,则可能会遇到错误。
另外,使用li&gt;以我的拙见,一个坏主意。给你的目标元素一个类并坚持下去,因为:
A)否则你的代码可能会影响你没想到的其他元素。
B)JQuery读取DOM的方式有效,这里你的代码将在你的页面中查找所有“li”,然后是所有具有“a”作为孩子的li。使用类甚至更好的,尽可能使用id,将加快这个过程,因为你的类将被jquery直接定位,而不是检查所有类似的元素。