返回按钮回调函数在特定情况下失败或未启动
back button callback function failing, or not firing, under particular condition
我正在尝试操作锚点元素(#backButton),以便它在单击时激发JS函数。除了点击以下元素链的情况外,它可以正常工作:#openShow>#openDetailsFromShow>#backButton>#backButton
在最后一个#backButton上,单击预期的JS函数(closeShowProvider())不会激发,而是#backButton恢复到其默认行为。
我已经尝试寻找解决方案,但我担心我对这个问题的理解限制了我解决它的能力。我怀疑这可能与关闭有关,但我可能错了。。。
JSFiddle的(不完全)工作代码https://jsfiddle.net/timothyvictor/u1dv83a1/2/
我真的陷入了困境,非常感谢任何帮助和/或建议。非常感谢,
电视
HTML:
<div class="container">
<a id="backButton" href="#link">Back Button</a>
<input type="text" id="link">
<br>
<button onclick="openShowProvider('id', 'searchProviders.php')" id="openShow">Open Show Provider</button>
<br>
<button onclick="openProviderDetails('NEW', 'searchProviders.php')" id="openDetailsDirect">Open Provider Details Direct</button>
<br>
<button onclick="openProviderDetails('NEW', 'showProvider.php')" style="display:none" id="openDetailsFromShow"> Open Provider Details from Show Provider</button>
<br>
<div id="showProvider" style="display: none;">
<h1 class="text-center">Show Provider is OPEN!!!!</h1>
</div>
<div class="alert alert-success" id="providerDetails" style="display: none;">
<h1 class="text-center">Provider Details is OPEN!!!!</h1>
</div>
这是JS:
function backButton (backFunc, param) {
$('#backButton').unbind().click(function(e){ //using unblind to clear backFunc before binding new event?
e.preventDefault();
backFunc(param);
$(this).unbind('click');
});
}
function openShowProvider(id, return_page){
if (return_page === 'searchProviders.php') {
$('#showProvider, #openDetailsFromShow').show();
$('#openShow, #openDetailsDirect').hide();
}
backButton(closeShowProvider, return_page);
}
function openProviderDetails(id, return_page) {
if (return_page === 'searchProviders.php') {
$('#openShow, #openDetailsDirect').hide();
}
if (return_page === 'showProvider.php') {
$('#showProvider, #openDetailsFromShow').hide();
}
$('#providerDetails').show();
backButton(closeProviderDetails, return_page);
}
function closeShowProvider(return_page){
if (return_page === 'searchProviders.php' || return_page === 'providerDetails.php'){
$('#showProvider, #openDetailsFromShow').hide();
$('#openShow, #openDetailsDirect').show();
}
}
function closeProviderDetails(return_page) {
$('#providerDetails').hide();
if (return_page === 'searchProviders.php'){
$('#openShow, #openDetailsDirect').show();
}
if (return_page === 'showProvider.php') {
$('#showProvider, #openDetailsFromShow').show();
backButton(closeShowProvider, 'providerDetails.php');
}
}
希望它能解决你的问题,在附加和删除点击事件时出现了一些错误
jsfiddle.net/u1dv83a1/3/
在这篇文章中,我使用了与您使用的代码相同的代码,但只是更改了中的backButton功能
相关文章:
- 我的jQuery插件参数没有正确启动,遇到了问题
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 从控制器返回后Ajax启动事件激发
- Meteor上的启动页面
- 如何防止网页加载后自动启动功能
- 当json解析空响应时,Whatwg-Fetch失败,我该如何防止它
- 如何从JavaScriptInterface启动Navigation Drawer
- JsFiddle在分叉后描述失败
- 返回按钮回调函数在特定情况下失败或未启动
- 有没有办法在node.js中的异常或测试失败时启动调试器
- 节点在启动脚本上运行失败
- 执行requestfullscreen失败'on 'Element': API只能由用户手势启动
- KeystoneJs应用程序在服务器启动"节点KeystoneJs "失败
- 启动多个setInterval失败
- 如何在nsIProcess启动firefox失败时捕获错误
- 启动MongoDB服务器失败.处理步骤mongodb的dbxit: rc: 48错误
- jQuery -在一个页面中加载两个脚本,其中一个在启动后失败
- 使用dpd-d启动MongoDB失败
- 运行OpenShift节点服务器:获取错误Application 'appname'启动失败(8080端
- Node.js了解如何重新启动失败的作业