我的js文件中有这段代码
$.post(storeurl+"/ajax/ajax-action.php", {action: 'removefromsession', id:did, pid:pid}, function(result){
if(result){
obj.closest("span").remove();
}
});
这是fiddle。
此代码在firefox和chrome中工作,但在safari中不起作用,即使我在safari控制台中没有出现任何错误。是否有任何解决方案可以在safari中使用此代码?
答案 0 :(得分:1)
尝试将this
与$()
打包在一起,因为.closest()
是一个jquery函数,而不是普通的旧javascript&#39>。
$(this).closest("span");
this
内的 $.post
将引用window
对象。我想这个帖子可能在点击事件或其他内容中。将clicked元素的this对象缓存在变量中,然后在成功回调中使用它。
答案 1 :(得分:0)
您在this.closest('span').remove()
内联事件处理程序中使用onclick
。 this
这里指的是被点击的元素,它不是jQuery对象。所以,你不能直接在它上面调用jQuery方法。
更好的方法是使用jQuery来处理事件。
$('.session_removebtn').on('click', 'a', function() {
$(this).closest('span').remove();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<span class="session_removebtn">
1v1 to Goal
<a href="javascript:void(0);"><b>X</b></a>
</span>