[英]How to declare that a button has been clicked outside the onclick function
$(document).ready(function() { var status = 'not active'; $('#button').on('click', function() { var button = 'THE BUTTON IS CLICKED'; var status = 'active'; alert(button); }); if(status == 'active'){ alert('THE BUTTON IS ACTIVATED'); } else { alert('THE BUTTON IS NOT ACTIVE'); } });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button id="button">X</button>
在这里的代码中,我试图获取onclick函数之外的按钮status
以输入if statement
但是它根本没有在函数外部定义。 我想收到alert('THE BUTTON IS ACTIVATED');
工作。
您正在声明一个新变量,也称为status
,该变量“混淆”函数内部的外部status
。 只需删除var
即可使用外部变量:
$(document).ready(function() { var status = 'not active'; $('#button').on('click', function() { var button = 'THE BUTTON IS CLICKED'; status = 'active'; alert(button); }); if(status == 'active'){ alert('THE BUTTON IS ACTIVATED') } else { alert('THE BUTTON IS NOT ACTIVE'); } });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button id="button">X</button>
编辑 :您的代码上有两点怪异的事情:当文档准备就绪时,仅使用一次警报状态,并且不切换active
状态。 也许您想要这样(对于这种状态,最好使用布尔变量而不是字符串):
$(document).ready(function() { var status = 'not active'; $('#button').on('click', function() { var button = 'THE BUTTON IS CLICKED'; status = (status == 'active') ? 'not active' : 'active'; alert(button); showButtonStatus(); }); function showButtonStatus() { if(status == 'active'){ alert('THE BUTTON IS ACTIVATED') } else { alert('THE BUTTON IS NOT ACTIVE'); } } });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button id="button">X</button>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.