javascript - 在循环内构建 onclick Javascript/jquery

标签 javascript

我正在尝试做的事情:

动态构建附加到 img 标记的 onclick 事件并传递 3 个值。问题在于 onclick 位于循环内,因此传递值的值会根据它们在循环内的位置而变化。

我已经设法通过将一个值附加到 img id 来传递它,但我不知道如何传递其他两个

newElement.innerHTML = '<img id="'+ id + '" class="Videoimg" onclick="myFunction(this.id,\"" + VideoTitlePlayer + "\","' + VideodescPlayer + '")" src="' + thumbnail +'"><div id="VideoNames" class="VideoTitle">'+ title +'<br><div class="VideoDescription">' + desc + '</div></div>';

好吧,这就是问题
调用此函数来构建 YouTube 视频菜单

$.each(playlistVideoItems, function (index, item) 
            {
            displayVideoResult(item.snippet, item.snippet.resourceId.videoId);
            });
<小时/>
function displayVideoResult(videoSnippet, VideoPlay) 
{ var title = videoSnippet.title;
var desc = videoSnippet.description;
var thumbnail = videoSnippet.thumbnails.default.url;
var id = VideoPlay;

var newElement = document.createElement("div");
newElement.setAttribute("class", "VideoContainerCSS");
    // Set the value to what you want
  newElement.innerHTML = '<img id="'+ id + '" class="Videoimg" onclick="myFunction(this.id)" src="' + thumbnail +'"><div id="VideoNames" class="VideoTitle">'+ title +'<br><div class="VideoDescription">' + desc + '</div></div>';

document.getElementById("results").appendChild(newElement);
}

我需要某种方法将 videoID、视频标题和视频 desc 构建到链接中,这样当单击 img 链接时,它会将所有 3 个参数传递给运行 youtube api 的函数

最佳答案

由于您有 jQuery,因此可以避免使用 onclick 并使用 jQuery 选择器和事件处理程序。

创建元素后,使用 jQuery 选择器来捕获它们。更好的是,在使用委托(delegate)事件样式的容器上使用一个。

不过,您可能需要稍微更改标记才能获取字符串。

$('.container').on('click', 'img', function(e) {
  var $el = $(this);
  myFunction(this.id, $el.find('.VideoTitle').text(), $el.find('. VideoDescription').text());
});

使用这种格式,您可以创建一个支持所有元素的事件处理程序。

关于javascript - 在循环内构建 onclick Javascript/jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46043965/

相关文章:

JavaScript振动脚本修改

javascript - 在javascript中获取mm/dd/yyyy格式的日期值

javascript - .htaccess:使用 RewriteCond 但对 IMAGES/JS/CSS 文件的 href 仍然被不必要地重写

javascript - 如何测试传递的函数?

javascript - 如何在功能组件中混合使用 useCallback 和 useRef

javascript - JS - onkeypress 不断将文本附加到末尾

javascript - 用一个导航标签控制多个标签内容

javascript - 在 2 个相似的表上使用 javascript 表搜索

javascript - 我们如何在 AngularJS 中更改作用域变量的值

javascript - 删除 dynamodb 中的列表元素,索引是存储在变量中的值