我编写了这个Jquery脚本来切换弹出窗口,现在一切正常,除了切换只能工作一次的部分。
我看到它与最初冒泡的事件有关,我需要用.stopPropagation()做一些事情,只是我没有修复它
$(function() {
$(".nonrefundable a").on("click", function(e) {
var link = this;
e.preventDefault();
$( "#popup" ).toggle();
$("#ok").click(function () {
window.location = link.href;
});
$("#nope").click(function () {
$( "#popup" ).toggle();
});
});
});
答案 0 :(得分:3)
试试这个:当你每次点击click
锚时,你将ok
事件与nope
和nonrefundatable
结合,只需将其绑定一次并更改{{1}的值锚内部点击功能的变量。
注意:始终将link
放在功能开头
e.preventDefault()
<强> Demo 强>
答案 1 :(得分:2)
<强>问题强>
您将#nope
和#ok
点击处理程序放在错误的位置。
这将在您每次单击锚点时分配处理程序。
<强>解强>
因此,您需要在外部分配click
个处理程序。
这样做:
$(function() {
var link;
$(".nonrefundable a").on("click", function(e) {
link = this;
$( "#popup" ).toggle();
});
$("#ok").click(function () {
window.location = link.href;
});
$("#nope").click(function () {
$( "#popup" ).toggle();
});
});
看看它是如何运作的:
<强> DEMO 强>
答案 2 :(得分:0)
请使用此代码替换您的Js代码
$(function() {
$(".nonrefundable a").on("click", function(e) {
var link = this;
e.preventDefault();
$( "#popup" ).toggle();
$("#ok").click(function () {
window.location = link.href;
});
$("#nope").unbind('click').click(function () {
$( "#popup" ).toggle();
});
});
});
希望这会对你有所帮助