Javascript 单击()多次点火
我正在使用Javascript 单击()多次点火,javascript,asp.net,click,dom-events,Javascript,Asp.net,Click,Dom Events,我正在使用document.getElementById(“val”).click()调用一个click事件,但它会多次触发 在这里,我添加了eventHandler: try { //add mousedown event handler to navigation buttons addEventHandler(oPrevArrow, "mousedown", handlePrevDayClick); addEventHandler(oNextArrow, "mous
document.getElementById(“val”).click()
调用一个click事件,但它会多次触发
在这里,我添加了eventHandler:
try {
//add mousedown event handler to navigation buttons
addEventHandler(oPrevArrow, "mousedown", handlePrevDayClick);
addEventHandler(oNextArrow, "mousedown", handleNextDayClick);
addEventHandler(oLogout, "mousedown", handleLogoutClick);
}
catch (err) {
}
在点击事件中,我正在执行“自动点击”
我需要帮助,以找出是什么使它调用多次和一个可能的修复
注意:自动单击的按钮调用ASP.NET代码中的方法,请尝试将其与JQuery连接起来:
$(document).ready(function() {
$('#oPrevArrow').click(function() {
$('#btn_prevday').trigger('click');
});
$('#oNextArrow').click(function() {
$('#btn_nextday').trigger('click');
});
$('#oLogout').click(function() {
$('#btn_logout').trigger('click');
});
});
这可能更加简洁,具体取决于您的箭头和按钮在DOM中的布局。它可能是jQuery的一行
比如:
$(document).ready(function() {
$('.arrow').click(function() { //note css class selector
$('this + button').trigger('click');
});
});
通常,当您多次触发事件时,这是因为事件多次附加到某个元素,或者您自动单击的元素是附加了相同事件的另一个元素的子元素。检查它们是否相互包裹,如果是,则需要检测当前目标是否与目标相等,以确保只发生一次。或者您可以停止事件传播。由于特定事件多次绑定到同一元素,因此会发生这种情况 对我有效的解决方案是: 使用
.die()
方法终止所有附加的事件
然后附加您的方法侦听器
因此,
$('.arrow').click(function() {
// FUNCTION BODY HERE
}
应该是:
$('.arrow').die("click")
$('.arrow').click(function() {
// FUNCTION BODY HERE
}
嗯,我会的,但是我的老板说不行。所以这真的没用。那真是太遗憾了。也许你可以让你的老板了解JQuery。斯科特·古思里(Scott Guthrie)经常在博客上谈论这件事。微软将其包含在他们的web解决方案模板中,因此它正在成为行业标准的javascript库。很快。我已经告诉过他了,但都是关于客户想要什么,所以我的话并不重要
$('.arrow').die("click")
$('.arrow').click(function() {
// FUNCTION BODY HERE
}