暂停单击事件,直到用户输入
Pause a click event until user input
看完这个问题的答案
我想知道如何构建一个preventDefault/stopPropagation依赖于用户点击事件,例如:
<html>
<a data-handler="add_to_cart" data-item_id="5">Click</a>
</html>
单击当前调用后端(通过ajax)的元素,将item 5添加到用户购物车中。但如果我想先注入一个对话框(仅限javascript)
var template = '' +
'<div class="dialog">' +
'<p>Really add this item?</p>' +
'<button>Yes</button>' +
'<button>No</button>' +
'</div>'
$(a).click(function(){
# open the dialog template
# if the correct button is clicked continue the default event
});
我不想使用confirm
或prompt
,我基本上是在寻找一种方法来实现他们的功能与我自己的html对话框
您可以阻止传播并从对话框中重新调用click()
方法,并请求传播
var template = '' +
'<div class="dialog">' +
'<p>Really add this item?</p>' +
'<button class=correctbutton>Yes</button>' +
'<button>No</button>' +
'</div>'
$(a).click(function(){
if(window.correctButtonClicked){
return true;//continue propagation
}
window.clickedA=a // store current clicked object
openDialog()
return false; //stop propagation
});
function openDialog(){
//Make a dialog from the template
$('.correctbutton').click(function(){
window.correctButtonClicked=true;
$(window.clickedA).click();
});
}
您有几个选项来完成此操作。我建议的两种方法是重写prompt方法(参见这里和这里关于重写和更改外观),或者创建自己的对话框并监视其上的按钮。
覆盖:
function prompt() {
//Insert your HTML, show the dialog
}
监视另一次点击:
$('#someOtherButton').click(function(){
//Do what you want
});
我建议简单地重写prompt()
。
相关文章:
- 使用javascript搜索具有用户输入的数组
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- 如何使用JavaScript中的用户输入创建序列/序列
- 如何在用户输入时实例化数组
- 如何从客户端的数组中获取用户输入和返回值
- 如何在用户输入 javascript 时更改值
- 如何从多个不同的html页面获得mongodb文档的用户输入
- PayPal按钮是否有一个简单的选项,其中金额基于一些用户输入
- 从表单中获取用户输入执行计算(操作顺序)并输出回该表单
- 我确实有一个表单,如果用户输入了输入,它应该检查否定或空的输入框,并抛出一条警告消息
- 如果用户输入的长度小于最小长度,则显示错误消息
- 随机生成用户输入
- 如果图像标记是用javascript编写的,并且需要用户输入,那么图像不会随页面加载吗
- Javascript:使用用户输入搜索数组
- 根据用户输入的数字生成文本框
- 如何通过获取用户输入和使用按钮来运行JavaScript函数
- 使用用户输入修改链接
- 如何解决取消抖动的用户输入上的竞争条件
- 从用户输入中制作数组动画,如打字机(javascript)
- 如何在视图中保存用户输入内容,并在离开页面时对控制器进行后期调用