1

I have got this html:

<a href="http://www.google.com"  data-ref="su1c2cess" class="Wifewriting" id="target_site_to_visit">
    <span data-app-id="63" class="btn" id="visit_site" style="right:22px; top:65px; padding:5px;z-index: -99999;">VISIT SITE</span>
</a>

UPDATE And this is my jQuery:

 $(document).ready(function(){
         $('body').on('click','#target_site_to_visit',function(event){
           var appName=$('#target_site_to_visit').attr('class');
           var referrer=$('#target_site_to_visit').attr('data-ref');
          $.post('db/update_site_viewed.php',{ name:appName, ref:referrer }, function(data){



      throw new Error("AppName: "+appName);

      },'html').error(function(data){

      throw new Error("Error: "+data.responseText);
      });
    // document.location.href=$('#target_site_to_visit').attr('href');
return false;
  });

});

The event.preventDefault(); does nothing in stopping the link from being triggered.. why?

4

2 回答 2

0

jQuery.on文档中,我会确保您的函数返回 false。

从事件处理程序返回 false 将自动调用 event.stopPropagation() 和 event.preventDefault()。

于 2012-07-15T06:25:50.777 回答
0

只要您的控制台和有效标记中没有错误,return false就会阻止事件的默认操作并防止它冒泡您所知道的 DOM。

$(document).ready(function(){
    $('body').on('click','#target_site_to_visit',function(event){
        var appName=$('#target_site_to_visit').attr('class');
        var referrer=$('#target_site_to_visit').attr('data-ref');
        $.post('db/update_site_viewed.php',{ name:appName, ref:referrer }, function(data){
            throw new Error("AppName: "+appName);
        }, 'html').error(function(data){
            throw new Error("Error: "+data.responseText);
        });
        return false;
    });
});

要使用获取的数据,请使用$.post返回获取数据的回调函数中的第一个参数:

$.post('db/update_site_viewed.php',{ name:appName, ref:referrer }, function(data){
        console.log(data); //<-- fetched html will be displayed in the console
}, html);

在回调函数内部,您可以使用.html().append()以及类似的方法将数据添加到 DOM,以及能够将其作为字符串进行操作,通过将datajQuery 对象包装在内部来获取它的子元素$(data),以及,做基本上你想要的一切。

参考

于 2012-07-15T06:51:32.337 回答