【发布时间】:2020-07-19 15:30:07
【问题描述】:
在第 3 方网络应用程序中,我想使用 jQuery 自动触发对列表中元素的点击,就像物理鼠标点击一样。
该列表包含玩家数据,这些数据总是不同的,因为它就像一场拍卖。元素类的名称始终相同。
选定的名字:class="listFUTItem has-auction-data selected"
一个未被选中的元素被命名为:class="listFUTItem has-auction-data"
列表如下所示:
使用 MutationObserver,我已经编辑了一个元素的高度,如果价格低于我的数据库的平均价格,它的颜色就会像这里看到的那样添加样式:
现在我想自动选择 Elements 类匹配 '[style*="background-color"]' 的交易
我也尝试向元素添加一个选定的类,但侧面板不会对此产生任何影响。
传输列表 HTML 如下所示:
我的意思是这个事件:
这是 MutationObserver 代码,里面有 jQuery:
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
//$(node).trigger('click'); //notworking
//$(node).trigger('click', ['selected']); // not working even when adding a selected class after page load and remove old selected
}
我尝试了类似的解决方案:
Difference between .click() and actually clicking a button? (javascript/jQuery)
Trigger a click event on an inner element
executing a click function without the user clicking? 太
不知何故,我需要触发改变侧面板的 listelement 事件。不知何故,虚拟点击必须触发绑定到真实鼠标点击的事件。但是我错过了什么?
【问题讨论】:
标签: javascript jquery html css