Javascript 如何使用jquery检测绑定到元素的事件

Javascript 如何使用jquery检测绑定到元素的事件,javascript,jquery,dom,Javascript,Jquery,Dom,这就是我想做的: 我在一个网页中有很多锚,有些是用ajax管理的,因为它们是用jquery绑定到点击事件的;有些不是这样,而是通过常规http请求发送到另一个页面 <a href="#/something" >something</a> <a href="#/ajax/something" class="blabla">ajax something</a> <script type="text/javascript"> $(f

这就是我想做的:

我在一个网页中有很多锚,有些是用ajax管理的,因为它们是用jquery绑定到点击事件的;有些不是这样,而是通过常规http请求发送到另一个页面

<a href="#/something" >something</a>
<a href="#/ajax/something" class="blabla">ajax something</a>

<script type="text/javascript">
    $(function(){
       $('.blabla').click(function(){
          //doing some ajax return false so anchor don't redirect
          return false;
       });
    });
</script>

$(函数(){
$('.blabla')。单击(函数(){
//执行一些ajax返回false,这样锚就不会重定向
返回false;
});
});
请不要回应锚定类,比如“嘿,选择所有没有“blabla”类的锚定”。 我这样做是因为我在页面上为每一个未通过ajax管理的锚点添加一个“等待”标签。 我想知道锚点是否绑定了一个点击事件


关于。

也许你可以使用jquery函数来存储这些锚的附加信息?

也许你可以使用jquery函数来存储这些锚的附加信息?

如果你的AJAX url系统总是在路径中包含
AJAX
,你可以基于
href
构建一个选择器

var $noAjaxLinks= $('a').filter(function(){

      return ! /ajax/.test(this.href);
})

如果您的AJAX url系统始终在路径中包含
AJAX
,则可以基于
href

var $noAjaxLinks= $('a').filter(function(){

      return ! /ajax/.test(this.href);
})

这是可行的——其理念是:

  • 存储每个
    存在多少
    单击事件

    尝试拉起控制台并将某些内容绑定到
    $('#test')
    对象


    编辑这里的小提琴:

    这很有效-想法是:

    • 存储每个
      存在多少
      单击事件

      尝试拉起控制台并将某些内容绑定到
      $('#test')
      对象


      编辑这里的小提琴:

      好的,这是我到目前为止所做的:

      <ul class="nav nav-list">
          <li><a href="content.php" class="load">content via .load()</a></li>
          <li><a href="content.php" class="get">content via $.get()</a></li>
          <li><a href="content.php" class="post">content via $.post()</a></li>
          <li><a href="content.php" class="ajax">content via $.ajax()</a></li>
          <li><a href="content.php" class="">content 2 without ajax()</a></li>
      </ul>
      
      我有很多锚,一个没有ajax,另一个有不同的ajax调用 这就是我希望在页面中找到的内容。我的代码必须捕获所有这些代码,并评估哪一个没有ajax调用,以区别对待

      这是密码

      //looking just for one anchor
      $('a').each(function(idx, obj){
          var events = $._data(this,'events');
          if (typeof events != "undefined" && "click" in events) {
              for (i in events.click) {
                  if (typeof events.click[i].handler != "undefined") {
                       var f = events.click[i].handler.toString();
                       if ((/\$(\(.*\))?\.(load|ajax|get|post)\(/).exec(f)) {
                          console.log('obj '+$(this).text()+' : with ajax.');
                          //this is where i'm gonna deal with this regular http anchor...
                       }
                  }
              }
          }
      });
      
      希望这能帮助另一个和我有同样问题的人。
      问候。

      好的,这是我到目前为止所拥有的:

      <ul class="nav nav-list">
          <li><a href="content.php" class="load">content via .load()</a></li>
          <li><a href="content.php" class="get">content via $.get()</a></li>
          <li><a href="content.php" class="post">content via $.post()</a></li>
          <li><a href="content.php" class="ajax">content via $.ajax()</a></li>
          <li><a href="content.php" class="">content 2 without ajax()</a></li>
      </ul>
      
      我有很多锚,一个没有ajax,另一个有不同的ajax调用 这就是我希望在页面中找到的内容。我的代码必须捕获所有这些代码,并评估哪一个没有ajax调用,以区别对待

      这是密码

      //looking just for one anchor
      $('a').each(function(idx, obj){
          var events = $._data(this,'events');
          if (typeof events != "undefined" && "click" in events) {
              for (i in events.click) {
                  if (typeof events.click[i].handler != "undefined") {
                       var f = events.click[i].handler.toString();
                       if ((/\$(\(.*\))?\.(load|ajax|get|post)\(/).exec(f)) {
                          console.log('obj '+$(this).text()+' : with ajax.');
                          //this is where i'm gonna deal with this regular http anchor...
                       }
                  }
              }
          }
      });
      
      希望这能帮助另一个和我有同样问题的人。
      注意。

      可能重复的有一些方法可以完成您需要的工作,而不需要调查事件。什么是更高层次的目标?你的解释不是很简洁这是一个网站,有些锚有远程行为,有些没有远程行为。所以我想捕捉那些没有远程行为的,以便在加载请求时用图像替换身体。@Mookamafob实际上这与我所寻找的最为相同,谢谢你,我看到了,我在发布问题之前在帖子中做了家庭作业搜索。谢谢。有可能重复的方法可以做你需要的事情,不需要调查事件。什么是更高层次的目标?你的解释不是很简洁这是一个网站,有些锚有远程行为,有些没有远程行为。所以我想捕捉那些没有远程行为的,以便在加载请求时用图像替换身体。@Mookamafob实际上这与我所寻找的最为相同,谢谢你,我看到了,我在发布问题之前在帖子中做了家庭作业搜索。谢谢。谢谢,但这是我无法继续的方式,我无法控制URL,因为这是一个我不编码的页面,并且有很多锚…好的。。你只对你的问题给出了一个非常基本的概述。可能还有其他途径可以探索,但并非没有细节。例如,您还没有确定查找事件有帮助的原因,或者确定任何有助于识别ajaxabale LinksHanks的参数,但这是我无法继续的方式,我无法控制URL,因为这是一个我不编码的页面,并且有许多锚定…好的。。你只对你的问题给出了一个非常基本的概述。可能还有其他途径可以探索,但并非没有细节。例如,您还没有确定查找事件有帮助的原因,或者确定任何有助于识别ajaxabale链接的参数。我不能存储,我必须检索,网站中有很多锚,我必须在这方面处理ajax和非ajax。我不能存储,我必须检索,网站中有很多锚,我必须在这方面处理ajax和非ajax。您的方法似乎是最接近解决方案的方法,通过在事件中走动并在$中查找数据。谢谢您的时间。@alexserver您是否介意将此标记为正确,以便其他人可以看到答案?谢谢您的方法似乎是最接近解决方案的方法,通过在事件周围走动并在$中查找数据。谢谢您的时间。@alexserver您是否介意将此标记为正确,以便其他人可以看到它已被回答?谢谢