jquery href and onclick separation

jquery href and onclick separation

本文关键字:separation onclick and href jquery      更新时间:2023-09-26

我有这样的代码

<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是个坏消息。也许您可以给元素一个伪类来帮助您将来的可读性。除此之外,忘记整个func1func2的事情。只需在您的点击绑定中使用一个匿名函数。

<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.
   }
});

我也不明白你问题的第二部分是什么意思,你能不能说得更具体一点。