我上周提交了这个问题:
chrome not working with jquery remove
并且能够解决它(我确实很愚蠢),但是我的例子非常简单。目前,我正在尝试使用 .remove
在将输入数组发送到 ajax 函数之前从页面中删除完整的 div。但是,我根本无法让 .remove
工作。
这是我最近的尝试: http://jsfiddle.net/CJ2r9/2/
我在多个浏览器上的 jsfiddle 上得到了未定义的函数。在我的应用程序中,我完全没有收到任何错误,但也没有任何效果。
我对 javascript 作用域比较陌生,所以如果问题是作用域方面的,那么请让我知道我是如何搞砸的。
我也尝试过使用 .on
jquery 函数,但考虑到我的 div id 是从服务器(jSTL、spring MVC 等)动态加载的,这有点令人困惑。如果这是一个解决方案,请告诉我如何走上正确的道路。
谢谢!
最佳答案
jsFiddle 中的两个问题是:
范围:
removeElem
不在全局范围内,因为您保留了默认配置选项以在 DOM 上执行代码。您可以将其更改为“不换行”以使该函数成为全局函数。您要删除的元素不存在。 div 元素具有类似“removeXXXp”的 ID,并且在事件处理程序中传递“removeXXXs”。
这是另一个更简单的元素删除解决方案(在我看来)。鉴于您的标记:
<div class="scheduleSet" id="remove315p">
<!-- ... -->
<a href="javascript:void(0);" class="optionHide">Remove</a>
</div>
您可以像这样使用.on
:
$('.schduleSet a.optionHide').on('click', function() {
// traverses up the DOM tree and finds the enclosing .schduleSet element
$(this).closest('.scheduleSet').remove();
});
您甚至根本不需要 ID。
关于javascript - Jquery删除函数后续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18085029/