【问题标题】:MutationsObserver click element / classMutationObserver 点击元素/类
【发布时间】:2020-07-16 03:02:35
【问题描述】:

我尝试在 transfermarketlist 中选择特定元素... 因此,我编辑了一个具有特定值的特定类,并从第一个 transfermarketlist 对象中删除了“选择”的当前类。 然后我将选定的类添加到特定元素,但它不能“.click”元素。需要模拟对对象的真实点击以使其工作并在网站上显示该对象

var observeTransferList = new MutationObserver(function (mutations) {
    mutations.forEach(function (mutation) {
        mutation.addedNodes.forEach(function (node) {
            if (node.nodeType === 1 && node.matches(".has-auction-data")) {
                $(node).css("height", "37");
                $(node).removeClass('selected');

                chrome.storage.sync.get(function (items) {
                    platform = items.platform;
                    percentage = items.percentage;
                    var playerData = getPlayerData(node, platform, percentage);


                    $(node).append(playerData);
                    if (playerData.colorPicked) {
                        $(node).css("backgroundColor", playerData.colorPicked); //can be "" by default, or green, yellow etc
                        //$(node).css("height", "37");
                        var price = Math.trunc(
                            parseInt(playerData.binValue.replace(/,/g, "")) / 0.949
                        );
                    }


       // -------- CODE HERE -----------//
                    if (node.matches('[style*="background-color"]')) { //works
                        $(node).css("height", "60"); //works
                        $(node).addClass('selected')//works
                        //$(node).click('selected'); // not working
                        //$(node).click(); // not working either


                    }

传输对象列表如下所示:

如果有任何问题,请直接问:)

【问题讨论】:

标签: javascript jquery css jquery-selectors mutation-observers


【解决方案1】:

尝试使用:

$(node).trigger('click');
$(node).trigger('click', ['selected']);

它的行为在所有浏览器中大体一致。 更多详情请参考thisjquery doc。

【讨论】:

  • 显然不工作。要么在“如果匹配”语句中执行,要么在代码末尾使用单个语句。 webapp可以阻止点击吗?
  • 你可能有别的想法?
  • 您能否在您的代码中验证单击事件处理程序已附加到节点。当元素在屏幕上异步加载或在页面加载后创建时,此类元素不会附加事件处理程序。在这种情况下,点击它们不会做任何事情。
  • 如何验证?哦,页面加载首先创建所有元素,然后突变观察器正在做它的工作
  • 在 Firefox 中,您可以检查是否将正确的事件处理程序附加到这些节点。这是显示如何查看它的 giphy 快照。 gph.is/g/a99mGB8
猜你喜欢
  • 1970-01-01
  • 2014-09-13
  • 1970-01-01
  • 2021-05-11
  • 1970-01-01
  • 2023-03-12
  • 2018-07-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多