gpt4 book ai didi

javascript - 为什么每次刷新logo我的页面都会自动上去?

转载 作者:行者123 更新时间:2023-11-30 06:14:11 26 4
gpt4 key购买 nike

我在 Drupal 8 上有一个站点,我使用以下代码更新 block View :

(function ($, Drupal) {

'use strict';

setInterval(function() {
$('.region-navigation-logo .view-display-id-block_3').trigger('RefreshView');
}, 10000);

})(jQuery, Drupal);

此代码更新站点的 Logo 。问题是,如果我向下滚动页面,它会每 10 秒自动上升一点。

您可以在我的网站上测试:

https://www.s1biose.com/fr/user/login

标识符:演示

密码:演示

然后单击该站点的 Logo ,向下滚动主页并等待 10 秒钟。您会看到页面每 10 秒上升一些像素。

更新

以下代码有效,但它应用于网站的所有 View 。

我只想将它应用于 2 个 View :

message_activity_stream_timeline_public

message_activity_stream_timeline_private

如何做到这一点?

function message_activity_stream_ajax_render_alter(array &$data) {
$view_name = '<view_name>';
$view_dom_id = '<view_dom_id>';
$selector = '.js-view-dom-id-' . $view_dom_id;

foreach ($data as $key => $value) {
if ($value['command'] === 'viewsScrollTop' && $value['selector'] === $selector) {
unset ($data[$key]);
break;
}
}
}

如何在 2 个 View 中使用此代码?

enter image description here

最佳答案

您可以获得以下代码的帮助以仅针对您的 View 运行代码

Drupal.behaviors.blockRefresh = {
attach: function (context, settings) {
jQuery.each(Drupal.views.instances, function (i, view) {
var selector = '.js-view-dom-id-' + view.settings.view_dom_id;
if (view.settings.view_name == "message_activity_stream_timeline_public" || view.settings.view_name == "message_activity_stream_timeline_private
" ) {
setInterval(function() {
$('.region-navigation-logo .view-display-id-block_3').trigger('RefreshView'); }, 10000);
}
}
});
}
}

我还没有测试它,但它是一个示例,可以帮助您如何仅针对 View 名称限制您的代码。

关于javascript - 为什么每次刷新logo我的页面都会自动上去?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57230523/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com