GVKun编程网logo

Javascript addEventListener() 显示标签(js append标签)

33

此处将为大家介绍关于JavascriptaddEventListener()显示标签的详细内容,并且为您解答有关jsappend标签的相关问题,此外,我们还将为您介绍关于addEventListene

此处将为大家介绍关于Javascript addEventListener() 显示标签的详细内容,并且为您解答有关js append标签的相关问题,此外,我们还将为您介绍关于addEventListener 的用法示例介绍_javascript技巧、document.addEventListener使用介绍_javascript技巧、DOMContentLoaded 上的 window.addEventListener 无法正常工作 - JavaScript、Javascript .addEventListener 不起作用的有用信息。

本文目录一览:

Javascript addEventListener() 显示标签(js append标签)

Javascript addEventListener() 显示标签(js append标签)

如何解决Javascript addEventListener() 显示标签?

我正在使用 Javascript 制作一个关于鸟类的网站。我想要的是,如果您单击显示详细信息,它将使用 EventListener 向您显示鸟类的详细信息。现在,它只显示我放在 html 中的标签,但我希望标签来自 java,这样我就可以显示更多标签,而不仅仅是鸟名。我希望这不是模糊的。我把我现在的代码放在下面。

window.addEventListener(''load'',function() {
    ''use strict'';

    const p_array = document.getElementsByTagName("p");
    const count = p_array.length;

    //loop through a list of elements.
    for (let i = 0; i < count; i++) {

        const p = p_array[i];

        p.addEventListener("click",function() {

            //const tag = p.getElementsByTagName(''p'');

            document.getElementById("title").innerHTML = p.dataset.value;

        })
    }
});
<!DOCTYPE html>
<html lang="en">
<head>
    <Meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1 id="title">Title</h1>
<p data-value="kerkuil">Click to change title to bird details</p>
<p data-value="specht">Click to change title to bird details</p>
<p data-value="meeuw">Click to change title to bird detail</p>

</body>
<script src="js/listenerEvent.js"></script>
</html>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

addEventListener 的用法示例介绍_javascript技巧

addEventListener 的用法示例介绍_javascript技巧

(要注意的是div必须放到js前面才行)

一般情况下,如果给一个dom对象绑定同一个事件,只有最后一个会生效,比如:

复制代码 代码如下:

document.getElementById("btn").onclick = method1;
document.getElementById("btn").onclick = method2;
document.getElementById("btn").onclick = method3;

那么将只有method3生效。

如果是Mozilla系列,用addEventListener可以让多个事件按顺序都实现,比如:
复制代码 代码如下:

var btn1Obj = document.getElementById("btn1");
//element.addEventListener(type,listener,useCapture);
btn1Obj.addEventListener("click",method1,false);
btn1Obj.addEventListener("click",method2,false);
btn1Obj.addEventListener("click",method3,false);

执行顺序为method1->method2->method3

如果是ie系列,用attachEvent可以让多个事件按顺序都实现,比如:
复制代码 代码如下:

var btn1Obj = document.getElementById("btn1");
//object.attachEvent(event,function);
btn1Obj.attachEvent("onclick",method1);
btn1Obj.attachEvent("onclick",method2);
btn1Obj.attachEvent("onclick",method3);

执行顺序为method3->method2->method1

=======================================================

Mozilla中:

addEventListener的使用方式

target.addEventListener(type,listener,useCapture);

target: 文档节点、document、window 或 XMLHttpRequest。
type: 字符串,事件名称,不含“on”,比如“click”、“mouseover”、“keydown”等。
listener :实现了 EventListener 接口或者是 JavaScript 中的函数。
useCapture :是否使用捕捉,一般用 false 。例如:document.getElementById("testText").addEventListener("keydown", function (event) { alert(event.keyCode); }, false);

IE中:

target.attachEvent(type, listener);
target: 文档节点、document、window 或 XMLHttpRequest。
type: 字符串,事件名称,含“on”,比如“onclick”、“onmouseover”、“onkeydown”等。
listener :实现了 EventListener 接口或者是 JavaScript 中的函数。 例如:document.getElementById("txt").attachEvent("onclick",function(event){alert(event.keyCode);});

W3C 及 IE 同时支持移除指定的事件, 用途是移除设定的事件, 格式分别如下:

removeEventListener(event,function,capture/bubble);

Windows IE的格式如下:

detachEvent(event,function);

DOM2 的进化:
DOM 0 Event DOM 2 Event
onblur() blur
onfocus() focus
onchange() change
onmouseover() mouseover
onmouseout() mouseout
onmousemove() mousemove
onmousedown() mousedown
onmouseup() mouseup
onclick() click
ondblclick() dblclick
onkeydown() keydown
onkeyup() keyup
onkeypress() keypress
onsubmit() submit
onload() load
onunload() unload


新的DOM2 用法可以addEventListener()这个函数来观察到:
复制代码 代码如下:

addEventListener(event,function,capture/bubble);

参数event如上表所示, function是要执行的函数, capture与bubble分别是W3C制定得两种时间模式,简单来说capture就是从document的开始读到最后一行, 再执行事件, 而bubble则是先寻找指定的位置再执行事件.
capture/bubble的参数是布尔值, True表示用capture, False则是bubble.Windows Internet Explorer也有制定一种EventHandler, 是 attachEvent(), 格式如下:
复制代码 代码如下:

window.attachEvent(”submit”,myFunction());

比较特别的是attachEvent不需要指定capture/bubble的参数, 因为在windows IE环境下都是使用Bubble的模式.

如何判断是否支持哪种监听呢?如:
复制代码 代码如下:

if (typeof window.addEventListener != “undefined”) {
window.addEventListener(”load”,rollover,false);
} else {
window.attachEvent(”onload”,rollover)
}

上述的 typeof window.addEventListener != “undefined” 程序代码可以判断使用者的浏览器是否支持AddEventListener这个事件模型, 如果不支持就使用attachEvent.

W3C 及 IE 同时支持移除指定的事件, 用途是移除设定的事件, 格式分别如下:

W3C格式:

removeEventListener(event,function,capture/bubble);

Windows IE的格式如下:

detachEvent(event,function);

document.addEventListener使用介绍_javascript技巧

document.addEventListener使用介绍_javascript技巧

document.addEventListener("事件名称", 函数, false);

复制代码 代码如下:

function 某函数(event){
// 方法执行
}

addEventListener里最后一个参数决定该事件的响应顺序;

如果为true事件执行顺序为 addEventListener ---- 标签的onclick事件 ---- document.onclick 

如果为false事件的顺序为 标签的onclick事件 ---- document.onclick ---- addEventListener

理解为其他代码的调用入口

DOMContentLoaded 上的 window.addEventListener 无法正常工作 - JavaScript

DOMContentLoaded 上的 window.addEventListener 无法正常工作 - JavaScript

如何解决DOMContentLoaded 上的 window.addEventListener 无法正常工作 - JavaScript?

这是我的第一个 JavaScript 片段。我遇到了以下问题。 我正在尝试使用 Django Rest Framework 数据加载序列化,然后呈现问题列表和分页栏。我也有 likeQuestionPaginationListenerSortingListener 函数。

在下面的代码片段中,我在 fetch 函数中执行了 likeQuestion、PaginationListener 和 SortingListener 函数。它有效,但由于它是递归的,因此每次点击都会导致多个 http 请求加倍(实际上只有 SortingListener 函数会这样,PaginationListener - 令人惊讶的是没有)。

我还尝试在 fetch 函数之外执行所有三个函数。它不起作用:当我尝试获取元素时,html 集合的长度为零。我用 window.addEventListener(''DOMContentLoaded'',(e) => {}) 试过了。还是不行。

在 fetch 函数之外,它仅适用于 setTimeout。但在这种情况下,PaginationListener 仅适用于第一次点击。而且超时似乎不是一个很好的决定。

我应该如何更改我的代码以使其顺利运行?

const url = document.getElementById(''question-list'').dataset.url
getQuestionList(url)


// Ask.index page loading
function getQuestionList(url) {
    const questionList = document.getElementById(''question-list'')
    fetch(url).then(response => response.json()).then(json => {

        // Questions List loading
        questionList.innerHTML = ''''
        for(const question of json.results){
            date = new Date(question.date)
            const el = document.createElement(''div'')
            el.classList.add(''row'',''justify-content-center'',''my-3'')
            el.innerHTML = ''<div>Question HTML</div>''
            const likeButton = el.querySelector(''.like-btn'')
            if(question.like){
                likeButton.classList.add(''active'')
            }
            questionList.appendChild(el)
        }

        // Pagination Links loading
        const pagination = document.getElementById(''pagination'')
        pagination.innerHTML = ''''
        if (json.links.first){
            pagination.innerHTML += ''<li><ahref="'' + json.links.first + ''">Первая</a></li>''
        } else {
            pagination.innerHTML += ''<lihttps://www.jb51.cc/tag/dis/" target="_blank">disabled"><ahref="#" disabled>Первая</a></li>''
        }
        if (json.links.second_prevIoUs){
            pagination.innerHTML += ''<li><ahref="'' + json.links.second_prevIoUs + ''">'' + (json.current - 2) + ''</a></li>''
        }
        if (json.links.prevIoUs){
            pagination.innerHTML += ''<li><ahref="'' + json.links.prevIoUs + ''">'' + (json.current - 1) + ''</a></li>''
        }
        pagination.innerHTML += ''<li><span>'' + json.current + ''</span></li>''
        if (json.links.next){
            pagination.innerHTML += ''<li><ahref="'' + json.links.next + ''">'' + (json.current + 1) + ''</a></li>''
        }
        if (json.links.second_next){
            pagination.innerHTML += ''<li><ahref="'' + json.links.second_next + ''">'' + (json.current + 2) + ''</a></li>''
        }
        if (json.links.last){
            pagination.innerHTML += ''<li><ahref="'' + json.links.last + ''">Последняя</a></li>''
        } else {
            pagination.innerHTML += ''<lihttps://www.jb51.cc/tag/dis/" target="_blank">disabled"><ahref="#" disabled>Последняя</a></li>''
        }

        likeQuestion()
        PaginationListener()
        SortingListener()
    })
}


function likeQuestion() {
    const button = document.getElementsByClassName(''like-btn'')
    Array.from(button).forEach(element => {
        element.addEventListener(''click'',() => {
            const url = element.dataset.url
            const request = new XMLHttpRequest()
            request.responseType = ''json''
            request.open(''GET'',url)
            request.setRequestHeader(''X-Requested-With'',''XMLHttpRequest'')
            request.send()
            request.onload = function () {
                if (this.status >= 200 && this.status < 400) {
                    if (this.response.auth) {
                        window.location = this.response.auth
                    } else {
                        element.querySelector(''.like_count'').textContent = this.response.like_count
                        if (this.response.add) {
                            element.classList.add(''active'')
                        } else {
                            element.classList.remove(''active'')
                        }
                    }
                } else {
                    console.log(''Did not get anything'')
                }
            }
            request.onerror = function () {
                console.log(''Connection error'');
            }
        })
    })
}

function PaginationListener() {
    const pagesLinks = document.getElementsByClassName(''page-link'')
    Array.from(pagesLinks).forEach(element => {
        element.addEventListener(''click'',(event) => {
            const url = element.getAttribute(''href'')
            if (url) {
                getQuestionList(url)
                window.scrollTo({top: 0,behavior: ''smooth''})
            }
            event.preventDefault()
        },false)
    })
}


function SortingListener(){
    const questionList = document.getElementById(''question-list'')
    const sortingField = document.getElementById(''id_order_by'')
    sortingField.addEventListener(''change'',(event)=>{
        const url = questionList.dataset.url + ''?order_by='' + event.target.value
        getQuestionList(url)
    })
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

Javascript .addEventListener 不起作用

Javascript .addEventListener 不起作用

你可以像这样调用函数

long

工作正常

int

在事件中正确分配的函数调用

为什么?

窗口加载时触发的函数不是事件调用。并且侦听器没有为事件正确分配功能

   canvas.addEventListener('pointerup',function(e) {
      listenerPointerUp(params,e)
    });

    const listenerPointerUp = (params,evt) =>{
        //code
    }
canvas.onpointerup = listenerPointerUp(params)

解决方案

let params = "clicked"
document.querySelector('#demo').addEventListener('click',listenerPointerUp(params));

function listenerPointerUp(e) {
  console.log(e)
}
<button id="demo">click</button>

今天的关于Javascript addEventListener() 显示标签js append标签的分享已经结束,谢谢您的关注,如果想了解更多关于addEventListener 的用法示例介绍_javascript技巧、document.addEventListener使用介绍_javascript技巧、DOMContentLoaded 上的 window.addEventListener 无法正常工作 - JavaScript、Javascript .addEventListener 不起作用的相关知识,请在本站进行查询。

本文标签: