gpt4 book ai didi

javascript - 无法将单击事件附加到 JQuery 中的按钮

转载 作者:行者123 更新时间:2023-12-02 21:15:10 25 4
gpt4 key购买 nike



我是 JQuery 新手,我把它搞砸了......
我正在尝试为我的网站建立一个游览。我有这个函数来构建和显示弹出窗口。它们确实出现了,但按钮只能在第一个弹出窗口中使用(只有一个按钮)。

这是我现在的代码:

function createButton(i){ //Creates buttons for later appending to popover's content
if (i==0){ //First popover, just needs "Next" button
return '<a class="btn btn-light border border-dark float-right mb-2" >Next</a>';
}

else if(i<popovers.length-1){ //Popovers in the middle need both "Previous" and "Next" buttons
var buttons = new Array();
buttons[0] = '<a class="btn btn-light border border-dark float-left mb-2">Previous</a>';
buttons[1] = '<a class="btn btn-light border border-dark float-right mb-2">Next</a>';
return buttons;
}

else{ //The last popover only needs a "Finish" button
return '<a class="btn btn-light border border-dark float-right mb-2">Finish</a>';
}
}

问题一定出在这里:

function showPopover(i){

var current = popovers[i];
var button = $(createButton(i));
current.popover('toggle');
var new_position = $('.popover').offset();
var content = $('.popover-body');

if(button.length == 2){
$(button[0]).appendTo(content);
$(button[1]).appendTo(content);
}
else{
button.appendTo(content);
}
window.scrollTo( new_position.left, new_position.top - 60 );

if(button.length == 2){

$(button[0]).click(function ()
{
current.popover('toggle');
content.detach();
i--;
if(i>=0){
showPopover(i);
}
});

$(button[1]).click(function ()
{
current.popover('toggle');
content.detach();
i++;
if(i!=popovers.length){
showPopover(i);
}
});
}
else{
button.click(function ()
{
current.popover( 'toggle' );
content.detach();
i++;
if(i!=popovers.length){
showPopover(i);
}
});
}


};

在检查按钮时,我可以看到它们没有附加任何事件,因此问题出在单击函数中。
我认为我可能错误地使用了 JQuery 选择器;但是,附加功能确实可以工作并在弹出窗口上显示按钮。

感谢您的回答!

最佳答案

我认为首先将这些按钮附加到 DOM,然后只附加事件。

因为我可以看到您正在使用 $(button[0]) 某些东西。 jQuery 将在 DOM 中搜索该元素并在那里附加单击事件。而且 button[0] 并不是一个实际的 DOM 对象,但此时它只是一个字符串。

关于javascript - 无法将单击事件附加到 JQuery 中的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60990604/

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