1

如何让网络浏览器触发对页面上#id 元素的点击?

使用.clickin javascript 不起作用,因为虽然.click在函数中被调用,但是该函数不会在单击时执行(否则它会起作用)

请帮忙。

$('#gocircus').live('click', function() {
document.getElementById('something').click();
});

点击机器人

4

3 回答 3

2
var el = document.getElementById('id');
el.onclick();

假设您之前在 onclick 上为该元素分配了功能

el.onclick = function() { // your code }

您的代码不像click()点击事件的 jQuery 扩展那样工作,您不能在 native 上使用它DOMElement,而是这样做:

$('#gocircus').live('click', function() {
   $('#something').click();
}).click();

根据我的评论,live自 1.7 起已弃用,请使用on()

$(document).on('click', '#gocircus', function() {
   $('#something').click();
}).click();

编辑

根据您的情况,我认为您需要将点击事件绑定到GO!

$('#go').click(function() {
   for(var i = 0; i < $('#manyTimesToClick').val(); i++) {
      $('#idToClick').click();
   }
});
于 2012-04-25T03:13:32.823 回答
1

如果您对 jquery 持开放态度,您可以尝试使用触发事件来触发按钮 http://api.jquery.com/trigger/

$("#gocircus").click(function () {
$("something").trigger('click');


});
于 2012-04-25T03:18:25.310 回答
0

您需要的方法是dispatchEventfireEvent,具体取决于浏览器。

这是一个示例代码片段

function eventFire(el, etype){
  if (el.fireEvent) {
    (el.fireEvent('on' + etype));
  } else {
    var evObj = document.createEvent('Events');
    evObj.initEvent(etype, true, false);
    el.dispatchEvent(evObj);
  }
}

从这里开始:如何使用 JavaScript 模拟点击?

于 2012-04-25T03:43:38.183 回答