JQuery .trigger('click'),。click(),。troiggerHandler('click')无法在Google Chrome中运行

时间:2012-10-31 15:26:50

标签: jquery triggers click

我有一个简单的JQuery代码,它将检查当前的URL并搜索文本;如果存在,执行一些代码。我正在使用开关盒。该代码适用于FF,IE,但不适用于Webkit浏览器,Chrome和Safari。这是代码:

注意:请假设当前网址末尾包含#f3 - 所以

$(document).ready(function() {      

    var checkUrl = $(location).attr('href');

        switch (true) {

        case (checkUrl.search("#f1") > 0):
            //just focus on #f3 below
            break;

        case (checkUrl.search("#f2") > 0):
            //just focus on #f3 below
            break;

        case (checkUrl.search("#f3") > 0):
            //$(".jcarousel-next").trigger("click");
            $(".jcarousel-next").triggerHandler('click');

            break;

        default:
            false;

        }
});

这应该做的是模拟在页面上点击类div的{​​{1}}。 Chrome和Safari不执行任何操作(除了加载页面外)。适用于Firefox,IE等......

任何解决方案的人?

2 个答案:

答案 0 :(得分:0)

触发器在所有浏览器中工作正常,我认为问题是因为选择器它是一个类,所以如果“jcarousel-next”它在运行时添加,则需要在

之后添加处理程序

这是一个例子,工作正常 第一个文字什么都不做 第二次从第三次提升点击事件。 第三个是点击事件...

runnning .... http://jsfiddle.net/37dAj/

<div class="botton1">
    <h2>nothing</h2>
</div>

<div class="botton2">
    <h2>raise click event from botton3</h2>
</div>

<div class="botton3">
    <h2>click event</h2>
</div>​

$(document).ready(function () {
        $('.botton3').click(doSomething);
        $('.botton2').click(doTrigger);
    });

    function doTrigger() {
        $('.botton3').trigger('click');
    }

    function doSomething() {
        alert('boo!');
    }

答案 1 :(得分:0)

我更新了代码,现在适用于所有必需的浏览器(ie7,ie8,ie9,FF,Chrome和Safari)。这是其中一个案例中的一个例子(案例2):

for(var i = 1; i <2; i ++){
 setTimeout(function(){$(“。jcarousel-next”)。click();},700 * i);
}

for循环将以一定的间隔对所需代码执行一定次数以延迟单击,否则,循环发生得如此之快以至于您看不到它。

感谢大家的建议。

Abu K。