2

如何在原型 JavaScript 中检查按钮是否被点击?

$('activateButton').observe('click', function(event) {
  alert(hi);
});

上面的代码不起作用。

4

2 回答 2

3

使用此按钮:

<button id="mybutton">Click Me</button>

用这个:

$('mybutton').observe('click', function () {
  alert('Hi');
});

在这里测试和工作。

您可能希望将其封装在一个document.observe('dom:loaded', function () { })东西中,以防止它在您的页面加载之前执行。

另外,只是一个解释:

Prototype 中的单个美元符号通过其 id 选择一个元素。该.observe函数与 jQuery 的函数非常相似.on,因为它用于将事件处理程序绑定到元素。

此外,如果您需要它成为永久的“已单击按钮”,请尝试以下操作:

$('mybutton').observe('click', function () {
  var clicked = true;
  window.clicked = clicked;
});

然后,如果你想测试按钮是否被点击,那么你可以这样做:

if (clicked) {
  // Button clicked
} else {
  // Button not clicked
}

如果您尝试制作一个不希望用户多次单击的表单,这可能会有所帮助。

如何在 jQuery 中做到这一点,仅供参考:

$('#mybutton').on('click', function () {
  alert('Hi');
});

请注意,上面提到的 jQuery 代码也可以缩短为:

$('#mybutton').click(function () {
  alert('Hi');
});

jQuery 在 Prototype 中更好,因为它将 Prototype$$$函数的使用组合到一个函数中,$. 这不仅可以通过它们的 id 选择元素,还可以通过其他可能的 css 选择方法。

如何使用纯 JavaScript 做到这一点:

document.getElementById('mybutton').onclick = function () {
  alert('Hi');
}

仅供参考,以备不时之需。

于 2012-11-23T05:21:33.197 回答
1
$('body').delegate('.activateButton', 'click', function(e){
  alert('HI');
});
于 2012-11-23T05:16:19.643 回答