小编EFH*_*EFH的帖子

在Javascript中引用数组

我有一个可能是个愚蠢的问题.在下面的代码中,函数doStuff似乎将myArray重新分配给一个空数组,但是当在控制台中尝试它时,myArray仍然是[2,3,4,5].

var myArray = [2, 3, 4, 5];
function doStuff(arr) {
   arr = [];
};

doStuff(myArray);
console.log(myArray)// => [2,3,4,5]
Run Code Online (Sandbox Code Playgroud)

此外,修改数组的函数似乎工作正常.例如:

 function changeSecondIndex(arr){
      arr[2] = 25;
 }

 changeSecondIndex(myArray)
 console.log(myArray) // => [2,3,25,5]
Run Code Online (Sandbox Code Playgroud)

有人可以帮我理解这里发生了什么吗?谢谢.

javascript arrays

7
推荐指数
1
解决办法
224
查看次数

jQuery .fadeTo() -- 淡出后淡入

我这个项目的目标是拥有一个 div,当鼠标悬停在上面时,它会选择随机背景颜色,然后淡出。但是,我希望能够返回并再次将鼠标悬停在 div 上并重新开始该过程。到目前为止,我只设法获得随机颜色并将其淡出,但是当我将鼠标再次悬停时,什么也没有发生。尝试删除不透明度和背景类但无济于事。到目前为止,这是我的代码:

$(function() {


    var $foo = $('.foo');

    function getRandomColor() {

        $foo.removeClass('background-color');
        $foo.addClass('opacity', '1');
        var length = 6;
        var chars = '0123456789ABCDEF';
        var hex = '#';
        while(length--) hex += chars[(Math.random() * 16) | 0];
        return hex;
        }


    $foo.mouseenter(function(){

        $(this).css('background-color', getRandomColor());


        });

    $foo.mouseleave(function(){

        $(this).fadeTo( 1000, 0 );

        });


    });
Run Code Online (Sandbox Code Playgroud)

HTML - 只是一堆要测试的 div

<div class="foo box">Hello world</div>
<div class="foo box">Hello world</div>
<div class="foo box">Hello world</div>
<div class="foo box">Hello world</div>
<div class="foo box">Hello world</div>
<div class="foo box">Hello world</div>
Run Code Online (Sandbox Code Playgroud)

提前致谢!

html javascript css jquery

5
推荐指数
1
解决办法
1706
查看次数

用普通的旧JS动态渲染DOM元素有什么好方法?

我面临的挑战是使用普通的旧Javascript构建单页应用程序,不允许使用任何库或框架.虽然在React和Angular中创建动态DOM元素相当简单,但我提出的vanilla JS解决方案看起来很笨拙.我想知道是否有一种特别简洁或有效的方法来构建动态呈现的DOM元素?

下面的函数接收一个从GET请求接收的数组,并为每个项呈现一个div,传入该值(就像在React和render子元素中映射结果一样).

 function loadResults(array) {
  array.forEach(videoObject => {
    let videoData =  videoObject.snippet;
    let video = {
       title : videoData.title,
       img : videoData.thumbnails.default.url,
       description : videoData.description
    };
    let div = document.createElement("DIV");
    let img = document.createElement("IMG");
    img.src = video.img;
    let h4 = document.createElement("h4");
    let title = document.createTextNode(video.title);
    h4.appendChild(title);
    let p = document.createElement("p");
    let desc = document.createTextNode(video.description);
    p.appendChild(desc);

    div.appendChild(img);
    div.appendChild(h4);
    div.appendChild(p);
    document.getElementById('results')
      .appendChild(div);
  });
}
Run Code Online (Sandbox Code Playgroud)

这感觉不必要地笨重,但我还没有找到一种更简单的方法来做到这一点.

提前致谢!

html javascript dom

5
推荐指数
1
解决办法
5955
查看次数

辅助功能 - 提醒用户按钮内的动态文本更改

我正在尝试提高测试连接的按钮的可访问性。如果连接成功,按钮文本将更改为“成功”。如果没有,它会更改为“不工作”。它们看起来像这样:

<button aria-label="success">Success!</button>

<button aria-label="failure">Not Working</button>
Run Code Online (Sandbox Code Playgroud)

我正在尝试找到一种方法来提醒用户按钮的内容更改。到目前为止,我已经添加了 aria-labels 来读取“成功”或“不工作”标题,但只有当用户按 Tab 键/从按钮移开,然后在状态结束后返回到按钮时,这些标题才会读取给用户。改变了。

我还尝试将按钮的文本包装在<span>带有 role="alert" 的 a 中,希望能通知用户文本已更改,但也没有运气:

<button aria-label="failure"><span role="alert">Not Working</span></button>
Run Code Online (Sandbox Code Playgroud)

我还尝试将按钮包装在 a 中<div aria-live="polite"/>,但我怀疑这不起作用,因为没有新元素添加页面,而是元素的内容已更改。

提醒用户动态更改的文本内容的好方法是什么?

谢谢!

html javascript accessibility

4
推荐指数
1
解决办法
3115
查看次数

标签 统计

javascript ×4

html ×3

accessibility ×1

arrays ×1

css ×1

dom ×1

jquery ×1