手动触发 div 的点击事件

5
我有一个包含多个div的div。当绑定这些div时,我为每个项目创建了以下的点击事件。
    jQuery.each(opts.items, function (i, item)
                    {
                        var image = opts.image;
                        jQuery('jQuery('<div class="' + opts.optionClassName + opts.controlId + '" id="' + item.key + '" ><img src="' + image + '" alt="checkbox" />' + item.value + '</div>')
                                .click(function ()
                                {')
                                        .click(function ()
                                        {

    //code goes here

    }
当UI中的div被单击时会触发此操作,但是当我尝试手动执行时它不会被触发。有关如何触发此操作的任何帮助将是很好的。
我已经硬编码了div的值并尝试调用它,但没有用。
   var id1 = 'Car';
    var id2 = 'Bus';
    $('div class="CList" id="1" >' + id1 + '</div>').trigger('click');
    $('div class="CList" id="3" >' + id2 + '</div>').trigger('click');

即使是这样

    var id1 = 'Car';
    var id2 = 'Bus';
    $('div class="CList" id="1" >' + id1 + '</div>')[0].click();
    $('div class="CList" id="3" >' + id2 + '</div>')[0].click();
3个回答

21

你所拥有的不是有效的选择器。你向 jQuery 函数传递了几乎是 HTML 的东西,所以它并不知道该怎么处理。

如果你元素的 ID 分别为 13,那么你只需要这样做:

$('#1, #3').trigger('click');

如果您想模拟单击每个元素,也许更好的方法是再次迭代您的集合:

jQuery.each(opts.items, function(i, item) {
    $('#' + item.key).trigger('click');
});

我正在尝试执行 $('#1 .optionCheckboxURegionList').trigger('click'); 如果有效,我会再联系你的。我觉得在此之前我甚至已经尝试过这个方法了。 - G--
@G-- 这个代码是在元素 ID 为1 的标签内部查找具有指定类名的元素。然而,您的 ID 为1 的元素本身就已经有了这个类名:去掉空格即可。不过,使用类选择器并不是必要的,因为在页面上特定的 ID 只应该对应一个元素。 - Anthony Grist
你的意思是说在id和class之间没有空格,写成$('#1.optionCheckboxURegionList').trigger('click');吗? - G--
@G-- 是的,空格意味着“内部”,没有空格意味着“并且”。您想要具有ID为1且具有该类的元素,而不是具有该类的元素位于具有ID为1的元素内部。 - Anthony Grist

3

通过Jquery获取元素并使用触发函数 ;)

$("#yourdesiredselementsid").trigger("click");

@Igle:我正在为整个 div 绑定 click 事件。即使我硬编码现有的 div 并触发 click 事件,它也不起作用。 - G--

1
给你的外部div命名一个类名。
  <div class="display">
   <div id="1"></div>
   <div id="2"></div>
    </div>

然后

$('.display').on('click','div',function (e) {

alert('hey');
  });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接