Php 单击时仅在选项卡()内激发两次
我的页面上有一个名为Php 单击时仅在选项卡()内激发两次,php,jquery,html,onclick,Php,Jquery,Html,Onclick,我的页面上有一个名为task1的容器,其中包含幻灯片、后退按钮和下一步按钮。最后一页将有task1作为一系列选项卡(称为tasks的容器)之一。当我省略了tabs()函数时,我的onClick事件可以正常工作。我一添加tabs(),就会触发两次onClick。我检查了其他问题,但最流行的答案“检查代码是否写了两次”是站不住脚的 有什么建议吗?提前谢谢 HTML: php生成幻灯片(.yNext是下一个按钮,.yBack是后退按钮): if($slide==“55”) $slide='1'; 其他
task1
的容器,其中包含幻灯片、后退按钮和下一步按钮。最后一页将有task1
作为一系列选项卡(称为tasks的容器)之一。当我省略了tabs()
函数时,我的onClick
事件可以正常工作。我一添加tabs(),就会触发两次onClick
。我检查了其他问题,但最流行的答案“检查代码是否写了两次”是站不住脚的
有什么建议吗?提前谢谢
HTML:
php生成幻灯片(.yNext是下一个按钮,.yBack是后退按钮):
if($slide==“55”)
$slide='1';
其他的
$slide++;
回声“;
回声“//后退按钮
回声“;
回声“;
回声“;
回声“;
回声“;
回声“//下一个按钮
回声“;
添加返回false代码>到单击处理程序的末尾,以防止默认操作和事件冒泡。其中一个似乎再次触发处理程序。这是下一个按钮。我已经在守则中澄清了这一点。谢谢你指出这个模棱两可的地方。为什么你要用
作为按钮,而不仅仅是
?这些类型的输入旨在作为表单的提交按钮。您是否也总是填写#task1或其他?可能是您用.yNext绑定了两次单击事件。作为猜测,请尝试将return false
放在单击处理程序的末尾。返回false会阻止按钮的默认操作。我不知道为什么在这种情况下有必要这样做,我怀疑你的代码中有更多你没有向我们展示的东西可以解释它。
<div class="content" id="tasks">
<ul>
<li><a href="#task1">Review for Quiz</a></li>
<li><a href="#task2">task 2</a></li>
<li><a href="#task3">task 3</a></li>
<li><a href="#task4">task 4</a></li>
<li><a href="#task5">Blackjack</a></li>
</ul>
<div class="content" id="task1"></div>
<div class="content" id="task2"></div>
<div class="content" id="task3"></div>
<div class="content" id="task4"></div>
<div class="content" id="task5"></div>
</div>
$("#tasks").tabs();
$(".content").on('click','.yNext',function(){
$.ajax({
url: "task1php.php",
async: true,
type: "POST",
data: {func: 3}
}).success(function(data){
alert(data);
$("#task1").html(data);
});
});
if($slide == '55')
$slide = '1';
else
$slide++;
echo "<div class='yLeftSs'>";
echo "<input class='yBack' type='image' src='images/BackArrow.png' />";//back button
echo "</div>";
echo "<div class='yCenterSs'>";
echo "<img class='ySlides' src='images/Task1_slides/Slide".$slide.".PNG'/>";
echo "</div>";
echo "<div class='yRightSs'>";
echo "<input class='yNext' type='image' src='images/NextArrow.png' />";//next button
echo "</div>";