新手问题 js 中修改 data-method 无效么?

angelfan · 2015年03月15日 · 最后由 cuterxy 回复于 2015年03月16日 · 3349 次阅读

一个取消喜欢的链接

<a data-remote="true" data-method="delete" href="/articles/22/like">
<i class="fa fa-smile-o"></i>
<span>取消喜欢</span>
</a>

点击后发送 ajax 请求,然后再 js 中修改了 data-method 属性

('span ').text('喜欢');
data("method", "post")

属性修改成功

<a data-remote="true" data-method="post" href="/articles/22/like">
<i class="fa fa-smile-o"></i>
<span>喜欢</span>
</a>

点击该喜欢链接依然发送了一个 delete 请求

问题:是不可以通过这种方式来修改么?还是有其他需要注意的细节?

试用 attr('method', 'post')

打错,attr('data-method', 'post')

('span ').text('喜欢');
data("method", "post")

这里 data 的调用对象是什么?

method 开始为何是 delete?

#6 楼 @mogodb 因为该用户已经喜欢过了

#5 楼 @Rei 这边 attr data 都试过了甚至我都 removeAttr 后重新加上了一个 效果还是一样的

#10 楼 @Rei 哈哈 我是参照 ruby-china 做的 不知道问题出哪里啦

#10 楼 @Rei 刚试了一下,如果 append 一个新的标新是可以的

append("<a data-remote= true data-method=post href=/articles/22/like >喜欢<a>")

#12 楼 @angelfan 这么看应该是 js 事件绑定的问题。因为你是在页面加载之后再修改链接的,所以链接的 js 事件绑定已经在你修改之前发生了,所以你再修改链接内容已经无济于事了。所以你要么重新加载一遍修改后的链接的内容,要么就新增一个链接。

@angelfan ,我试了一下,好像用 data 跟 attr 两个方法都行

#13 楼 @cuterxy 但是修改 data-remote 是有效的 当我把 data-remote=false 的时候这个链接就无法发送 ajax 请求了

#15 楼 @angelfan 那可能是两种参数不同的处理方法吧

需要 登录 后方可回复, 如果你还没有账号请 注册新账号