javascript在链接上不起作用

javascript在链接上不起作用,javascript,jquery,Javascript,Jquery,我得到了这个html: <a style="display:block; padding:100%; text-decoration: none;" href="http://google.com " class="Jasmin" id="target_site_to_visit"> <span data-app-id="88" class="btn" id="visit_site" style="right:22px; top:65px; padding:5px;z-

我得到了这个html:

   <a style="display:block; padding:100%; text-decoration: none;" href="http://google.com " class="Jasmin" id="target_site_to_visit">

<span data-app-id="88" class="btn" id="visit_site" style="right:22px; top:65px; padding:5px;z-index: -99999;">VISIT SITE</span>

</a>

只要单击按钮,就会出现问题。。执行post方法,将数据放入数据库。但只有当jquery中的最后一行不存在时才会发生这种情况:document.location.href。。重定向会以某种方式影响post..并且可能没有给出要执行的post方法..导致没有记录插入到db中(或在其他post方法中没有执行)。。这可能是原因吗..原因重定向确实会影响post方法的执行

这将解决您的问题

<script type="text/javascript">
        $('#target_site_to_visit').live("click",function(event){
        event.preventDefault();
       var appName=$('#target_site_to_visit').attr('class');
      $.post('db/update_site_viewed.php',{ name:appName }, function(data){

     //    console.log("AppName: "+appName);

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

       //  console.log("Error: "+data.responseText);
      });
    //  document.location.href=$('#target_site_to_visit').attr('href');
  }); 

$(“#目标网站访问”).live(“点击”,功能(事件){
event.preventDefault();
var appName=$('target#site_to_visit').attr('class');
$.post('db/update\u site\u viewed.php',{name:appName},函数(数据){
//console.log(“AppName:+AppName”);
},'html')。错误(函数(数据){
//日志(“错误:+data.responseText”);
});
//document.location.href=$('#target_site_to_visit').attr('href');
}); 

但是使用.on()而不是.live()。就像


$(文档)。在(“单击”,“目标站点访问”,功能(事件){
event.preventDefault();
var appName=$('target#site_to_visit').attr('class');
$.post('db/update\u site\u viewed.php',{name:appName},函数(数据){
//console.log(“AppName:+AppName”);
},'html')。错误(函数(数据){
//日志(“错误:+data.responseText”);
});
//document.location.href=$('#target_site_to_visit').attr('href');
}); 

这将解决您的问题

<script type="text/javascript">
        $('#target_site_to_visit').live("click",function(event){
        event.preventDefault();
       var appName=$('#target_site_to_visit').attr('class');
      $.post('db/update_site_viewed.php',{ name:appName }, function(data){

     //    console.log("AppName: "+appName);

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

       //  console.log("Error: "+data.responseText);
      });
    //  document.location.href=$('#target_site_to_visit').attr('href');
  }); 

$(“#目标网站访问”).live(“点击”,功能(事件){
event.preventDefault();
var appName=$('target#site_to_visit').attr('class');
$.post('db/update\u site\u viewed.php',{name:appName},函数(数据){
//console.log(“AppName:+AppName”);
},'html')。错误(函数(数据){
//日志(“错误:+data.responseText”);
});
//document.location.href=$('#target_site_to_visit').attr('href');
}); 

但是使用.on()而不是.live()。就像


$(文档)。在(“单击”,“目标站点访问”,功能(事件){
event.preventDefault();
var appName=$('target#site_to_visit').attr('class');
$.post('db/update\u site\u viewed.php',{name:appName},函数(数据){
//console.log(“AppName:+AppName”);
},'html')。错误(函数(数据){
//日志(“错误:+data.responseText”);
});
//document.location.href=$('#target_site_to_visit').attr('href');
}); 

您需要将要侦听的事件(在本例中为
单击
)传递到
实时
方法

$("#somediv").live("click", function () {
    console.log("you clicked it");
});

另外,正如另一位回答者所说,您应该在上使用
,而不是
实时
,下面有一篇文章解释了原因:

您需要将要侦听的事件(在本例中是
单击
)传递到
实时
方法

$("#somediv").live("click", function () {
    console.log("you clicked it");
});

另外,正如另一位回答者所说,您应该在
上使用
,而不是
直播
,下面有一篇文章解释了原因:

您似乎没有指定事件的类型。它应该是
'click'
,如果我对jQuery语法的了解非常有限,那么它应该是回调之前的第一个参数


为了安全起见,我希望JavaScript处理的任何链接都具有
href=“JavaScript:void(null);”
。这样,即使事件处理程序未能取消事件,也不会发生任何事情。当用户将鼠标悬停在状态栏上时,在其状态栏中看到JavaScript链接比看到指向Google的链接更容易混淆。

您似乎没有指定事件的类型。它应该是
'click'
,如果我对jQuery语法的了解非常有限,那么它应该是回调之前的第一个参数


为了安全起见,我希望JavaScript处理的任何链接都具有
href=“JavaScript:void(null);”
。这样,即使事件处理程序未能取消事件,也不会发生任何事情。当用户将鼠标悬停在状态栏上时,在其状态栏中看到一个JavaScript链接比看到一个指向Google的链接更容易让人困惑。

.live()
仍然需要和事件(
可能单击
)顺便说一句。是的,您忘记了“.live()”的第一个参数。可能您现在应该使用“.on()”,因为“.live()”已被弃用。请参阅更新。live()
仍将需要和事件(
单击“
可能)。是的,您忘记了“.live()”的第一个参数。可能您现在应该使用“.on()”,因为“.live()”已被弃用。请参阅更新。这是我第一次看到有人说使用
.on
而不是
.live
并获得
.on
的用法正确+1:直播和直播有什么区别?为什么不使用live?因为有很多原因,比如。on比live快得多,还有很多额外的重要原因。这是我第一次看到有人说使用
。on
而不是
。live
并获得
的用法。on
正确+1:直播和直播有什么区别?为什么不使用live?因为有很多原因,比如。on比live快得多,还有很多非常重要的原因