jquery代码在safari浏览器中不起作用

时间:2015-09-01 06:58:02

标签: javascript jquery safari

我的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中使用此代码?

2 个答案:

答案 0 :(得分:1)

尝试将this$()打包在一起,因为.closest()是一个jquery函数,而不是普通的旧javascript&#39>。

$(this).closest("span");
this内的

$.post将引用window对象。我想这个帖子可能在点击事件或其他内容中。将clicked元素的this对象缓存在变量中,然后在成功回调中使用它。

答案 1 :(得分:0)

您在this.closest('span').remove()内联事件处理程序中使用onclickthis这里指的是被点击的元素,它不是jQuery对象。所以,你不能直接在它上面调用jQuery方法。

更好的方法是使用jQuery来处理事件。

Demo

$('.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>