事件(单击)如何通过另一次单击一次又一次地触发
How an event (click) can be triggered again and again by another click
最终编辑
解决方案是一个框架(Drupal)解决方案,使用Drupal行为附件:https://drupal.org/node/756722#behaviors而不仅仅是jquery。从这里,我只是附加了我的触发动作上的小部件。
,
上下文说明:用户可以对一个或多个项目进行多次投票,投票数限制为XX。每次他们投票时,我想触发一个刷新按钮,该按钮更新一个块,显示聚合在一个表中的所有投票。然后,块使用ajax函数重新加载表中的列表,这部分工作得非常好。
对我来说不幸的是,下面的函数只工作一次。在第一次点击触发刷新按钮之后,用户所做的下一次"a.c vote"点击不再触发刷新。
function refreshtable(){
$("a.vote").click(function(){
$(".refresh-button").trigger("click");
//Missing here something saying: do it again and again as far as user clicks;
});
};
$(document).ready(refreshtable);
我的问题:我如何改进这个功能,使触发一次又一次地发生?
EDIT:这是第一个按钮应该触发第二个按钮的代码:
$('.plus1-widget', context).once('plus1', function(){
var plus1_widget = $(this);
plus1_widget.find('.plus1-link').attr('href', function(){ return $(this).attr('href') + '&json=true'; }).click(function(){
$.getJSON($(this).attr('href'), function(json){
if (json) {
var newWidget = $(json.widget);
newWidget.hide();
plus1_widget.replaceWith(newWidget);
newWidget.fadeIn('slow');
Drupal.attachBehaviors();
}
});
return false;
});
});
有这个:plus1_widget.replaceWith(newWidget)
,所以@chad和@JasonP建议它可能与文档有关。Ready表示该函数只在文档准备好时触发一次,对吧?
函数被触发后,文档仍然准备好了,也许它应该再次准备好。我不确定我理解得对不对。
我的猜测是,您绑定事件的a.vote
元素在刷新html时被替换,导致处理程序丢失。尝试事件委派:
$(document).on('click', 'a.vote', function() {
$(".refresh-button").click();
});
Try
$(document).ready(function(){
$("a.vote").click(function(e){
e.preventDefault();
$(".refresh-button").trigger("click");
});
});
相关文章:
- 一次又一次地在新的和相同的选项卡中打开一个url
- 在单击事件中,第一次单击时激发代码一次,其余代码在所有单击时运行
- 单击事件在触发一次主干js后停止工作
- 如何初始化一次并将相同的值一次又一次地传递给另一个函数
- 流星回拨天堂回拨一次又一次
- 一次又一次地调用功能
- 如何阻止网页在到达底部后一次又一次地自动滚动
- 我想单击一个按钮,一次只执行已经制作的程序中的一行代码.(JavaScript)
- 杜兰达尔 2.0.1,尝试激活一次又一次地被调用
- 向同一按钮添加两次单击事件只能工作一次
- 我的 JSON 数据使用 AJAX 加载了两次,它只应该在单击时加载一次
- JQuery 单击操作只工作一次
- Jquery单击事件只激发一次
- 即使用户一次又一次地输入同一封电子邮件,代码也不会停止提交表单
- 如何使用Jquery/JavaScript使此图像滑块在单击时滑动不止一次
- 单击功能只能工作一次
- IE在点击一个链接时,会一次又一次地弹出,而不是显示在同一个屏幕上
- 如果我点击并按住一个按钮,我如何使用angular一次又一次地启动鼠标点击按钮
- 如何使用jQuery单击后仅附加一次数据
- 事件(单击)如何通过另一次单击一次又一次地触发