在HTML结构中,我具有样式为内联块的项目列表,并且由于无法直接从drupal8添加id,因此我使用JQuery用<marquee> </marquee>
标签包装该列表视图。
我想做的是我有左右两个按钮,当我单击相应的按钮时,选框应改变其移动方向。
由于它是动态创建的元素,因此我无法使用jquery访问该元素,因此出现错误“未定义”。
当我单击左右按钮时,出现以下错误
marquee.start不是函数
var $j = jQuery;
$j(".item-list > ul").wrap("<marquee class='scrollermarquee'></marquee>");
$j('.view-header').on('click', function() {
var marquee = $j('.scrollermarquee').addClass('mia');
marquee.stop();
marquee.direction = 'left';
marquee.start();
})
$j('.view-footer').on('click', function() {
var marquee = $j('.scrollermarquee').addClass('mia');
marquee.stop();
marquee.direction = 'right';
marquee.start();
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="view view-ticker view-id-ticker view-display-id-block_1 js-view-dom-id-95599754f8c1606496d24cbc4e81ab801ba6c7756348defe6e876248e992d5e0">
<div class="view-header">
<p><span class="leftbutton"><</span></p>
</div>
<div class="view-content">
<div class="item-list">
<marquee class="scrollermarquee mia">
<ul>
<li>
<div class="views-field views-field-title"><span class="field-content"><a href="/node/805" hreflang="en">test-report-3</a></span></div>
</li>
<li>
<div class="views-field views-field-title"><span class="field-content"><a href="/node/801" hreflang="en">test-report-1</a></span></div>
</li>
<li>
<div class="views-field views-field-title"><span class="field-content"><a href="/node/470" hreflang="en">test-report-2</a></span></div>
</li>
</ul>
</marquee>
</div>
</div>
<div class="view-footer">
<p><span class="rightbutton">></span></p>
</div>
</div>
答案 0 :(得分:1)
尝试一下: 您正在使用jquery类选择器选择marquee元素,并向其添加类,该类不会返回marque元素,因此不会获得未定义的值。
首先获取元素,然后添加类,请参见下文
$j('.view-header').on('click', function() {
var marquee = $j('.scrollermarquee');
marquee.addClass('mia');
marquee[0].stop();
marquee[0].direction = 'left';
marquee[0].start();
})
$j('.view-footer').on('click', function() {
var marquee = $j('.scrollermarquee');
marquee.addClass('mia');
marquee[0].stop();
marquee[0].direction = 'right';
marquee[0].start();
})