jquery href and onclick separation
jquery href and onclick separation
我有这样的代码
<a id="id101" href="javascript:func1();" onclick="return func2();">Link</a>
func2返回true或false。然后,只有当function2返回true时,才会调用func1。正确的
在学习jquery时,我发现onclick不好并且贬值了,所以我将上面的代码修改为
<a id="id101" href="javascript:func1();">Link</a>
jquery
$("#id101").click(func2() {
//same stuffs from before which was in func2
});
现在,我的问题是:
在处理了点击处理程序之后,我可以对href中的JavaScript做些什么?当func2内部的条件为true时,我是否应该在func2的jQuery点击处理程序中调用func2内的func1?还是有一些优雅的解决方案?
此外,将html和事件代码分离是很好的,但在这里,id为id101
的元素可能有许多与之相关的事件,并且在一个大文件中,可能有太多html元素和许多事件。所以,当我有一个包含许多事件处理程序的大页面时,我如何才能更好地知道哪个html元素有哪个以及有多少事件与之关联?
根据要求对上述问题进行更多解释,
我的意思是id101可以有onclick、onmouseover、onmousemout和许多其他类似的事件。可以有许多这样的元素和许多这样的事件处理程序。如何更好地发现它们?在旧的风格中,所有这样的事件处理程序都放在一起,就像这个
CCD_ 2。
我不是说这很好,但至少我可以看到它有这个onclick事件。但现在,当将其分离到jquery文件中时,我必须首先在这个jquery文件搜索id101,然后检查与之相关的事件,这可能是html文件具有许多元素和相关事件处理程序的问题。有什么更好的方法可以找到这些信息吗?
如果我理解正确,你希望避免使用内联Javascript,但你也希望能够浏览a
并知道它是否绑定了事件。不幸的是,没有一种可接受的方式来表示这一点,因为内联Javascript是个坏消息。也许您可以给元素一个伪类来帮助您将来的可读性。除此之外,忘记整个func1
和func2
的事情。只需在您的点击绑定中使用一个匿名函数。
<a id="some_id" class="optional_has_click">Click Me</a>
<script type="text/javascript">
$(document).ready(function(){
$("#some_id").click(function(){
// do something
alert( $(this).attr("id") );
});
});
</script>
EDIT:此外,删除href
将删除视觉提示,因此您可以使用伪类使其看起来像a
。
给你一把小提琴:http://jsfiddle.net/zzTSt/1/
我能告诉你的最好的事情是,这是一个"臭"代码——你不希望你的javascript像这样到处都是。我建议您多花几个小时学习一些jQuery基础知识,然后继续学习。我知道这可能会令人沮丧,尤其是当您使用遗留javascript时。
是的,我建议您在func2中编写func1。HTML:
<a id="id101" href="#" >Link</a>
jQuery
$("#id101").click(func2() {
var status = false;
//func2 goes here and modifies status value.
if (status) {
// func1 goes here
} else {
// in case if status is false.
}
});
我也不明白你问题的第二部分是什么意思,你能不能说得更具体一点。
- 如何在执行此特定onclick事件时执行JavaScript函数
- Setting default onclick behavior for <img> tag in gene
- Javascript全局onclick监听器
- 如何调用“;链接_;在onclick事件上使用Javascript
- onclick函数需要双击,因为类分配延迟
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 使用onclick绘制SVG路径
- 如何将数据从onclick按钮传递到变量
- 选择onclick事件jquery
- I'我设计了一个下拉菜单,onclick会出现,而on blur会消失
- 如何刷新列表框内容onclick或blur事件
- OnClick/Onhover Javascript/jquery
- 执行php函数的onclick事件的其他替代方案
- Javascript onclick函数会立即调用(而不是在单击时调用)
- 动态创建OnClick事件Javascript
- onclick风格的整个李不想要
- jquery Onclick函数带有导致双击的回调排序函数
- 使用element简化onclick函数
- 将函数从onclick修改为onload
- jquery href and onclick separation