我的用例:
我正在使用最后一个jQuery版本(此时为v-3.1.1)。
我正在添加jQuery-UI,因为我需要// of course this is not working
// this the event I'm looking for
$("#cElement").on("preremove", function () { console.log("01"); });
$("#cElement").on("remove", function () { console.log("02"); });
事件。
我想我有一个元素列表。可以通过我正在使用的外部库( exampleLib.js )删除一个或多个元素(来自DOM)。
我无法编辑 exampleLib.js 的源代码(它托管在提供商CDN上,并由提供商定期更新)。
我需要捕获正在删除元素之前的 。 像这样的东西(所以当'cElement'被删除时它应该输出'01'然后输出'02':
$(document).ready(function(){
function preremoveEvent(){
console.log("Before removing element event... ");
}
$("#btnRemove").on("click", function () {
preremoveEvent();
$("#cElement").remove();
});
$("#cElement").on("remove", function () {
console.log("'C' Element was removed");
});
});
这可能吗?
以下是使用点击事件模拟场景:
#cElement{color: #900; font-weight: bold;}
<button id="btnRemove">Remove "User-C" element</button>
<ul>
<li data-important="a" data-also-important="aa">User-A</li>
<li data-important="bb" data-also-important="bb">User-B</li>
<li id="cElement" data-important="c" data-also-important="cc">User-C</li>
<li data-important="d" data-also-important="dd">User-D</li>
</ul>
<script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>
{{1}}
答案 0 :(得分:0)
如果我理解你,如果在包含exampleLib.js之前绑定自己的on("remove")
事件处理程序并且可以在on("remove")
上绑定相同的事件处理程序,它应该可以工作。
事件按照它们在jQuery中绑定的顺序进行处理,因此如果先绑定,则首先调用它并模拟所需的“preremoveEvent”。
如果这不是您想要的,请更新您的问题并提供更多详细信息(如Twisty已经询问过)。