Jquery .click()处理程序重新加载页面而不是触发事件

Jquery .click()处理程序重新加载页面而不是触发事件,jquery,Jquery,我正在使用CodeIgniter,并试图实现jQuery/AJAX在我的站点上启动操作,而不刷新页面。简单地说,它就像Facebook上的帖子和类似按钮一样 到目前为止,我成功地编写了一个小脚本,除了每隔三次单击就重新加载页面外,它可以完成任务 我将操作按钮封装在一个id为“post”+post的dbid的div中 然后,我向单击的链接添加了一个value属性,该链接保存了post id,类如下所示 <div> <h3>User Name</h3> <p

我正在使用CodeIgniter,并试图实现jQuery/AJAX在我的站点上启动操作,而不刷新页面。简单地说,它就像Facebook上的帖子和类似按钮一样

到目前为止,我成功地编写了一个小脚本,除了每隔三次单击就重新加载页面外,它可以完成任务

我将操作按钮封装在一个id为“post”+post的db
id的
div

然后,我向单击的链接添加了一个value属性,该链接保存了post id,类如下所示

<div>
<h3>User Name</h3>
<p>Post Content</p>
<div id="post_3">
 <a href="#" class="like" value="3">Like</a>
<div>
</div> 



$(".like").click(function(event){
var post = $(this).attr("value");
     var mydv = "#post_"+post;

      $.ajax({
      type: "POST",
      url: 'localhost/like/'+post,
      success: function(response) {
      if (response == "Success")
        {
            $(mydv).load("localhost/newsfeed"+mydv);
          }
          else
          {
            alert("Error");
          }

        }
      });
     event.preventDefault();
  });

用户名
帖子内容

$(“.like”)。单击(函数(事件){ var post=$(此).attr(“值”); var mydv=“#post_u2;”+post; $.ajax({ 类型:“POST”, url:'localhost/like/'+post, 成功:功能(响应){ 如果(响应=“成功”) { $(mydv).load(“localhost/newsfeed”+mydv); } 其他的 { 警报(“错误”); } } }); event.preventDefault(); });
当页面在第三次单击时重新加载时,它只是一个简单的重新加载过程,没有触发反馈或进程

我一定是做错了什么,我只是不知道是什么。

  • 添加
    event.preventDefault()事件处理程序代码顶部的代码
  • 同时将代码包装在
    文档中。就绪
  • 还要确保jQuery已加载

尝试使用
返回false
(而不是
event.preventDefault();
):


或者像@Dipesh Parmar提到的
event.preventDefault()
应该位于处理程序的顶部。

您正在替换包含
a.like
div
的内容。
click
处理程序将不会附加到由于调用
load()
而添加的任何锚点。您需要使用事件委派:

$(document).on('click', '.like', function(e) {
  e.preventDefault();
  // your code
});

$(this.attr(“值”)-永远不要这样做!!始终使用
.val()
获取值!或者只是
这个.value
。。。此外,URL必须以
/
http://
开头-否则
localhost
将被视为路径的一部分,而不是主机名。@ThiefMaster
此值在该实例中不起作用,
anchor的
没有
你能为它发布一个JSFIDLE链接吗?@ThiefMaster我可以确认@billyonecan所说的,
.val()
不起作用。我添加了
http://
哦,我没有注意到它是
a
标记。在这种情况下,首先使用
值是错误的。改为使用
数据值
,并使用
访问它。数据('value')
!我添加了
event.preventDefault()紧跟在
$(“.like”)。单击(函数(事件){
,仍然没有更改。jQuery被加载,代码被包装在
文档中。准备好了
您真是个天才!!!!!感谢您提供了文档链接。
$(document).on('click', '.like', function(e) {
  e.preventDefault();
  // your code
});