0

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

注意:请假设当前 URL 最后包含 #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类。".jcarousel-next"Chrome 和 Safari 什么都不做(除了加载页面)。适用于 Firefox、IE 等...

大佬们有什么解决办法吗?

4

2 回答 2

0

我更新了代码,现在适用于所有必需的浏览器(ie7、ie8、ie9、FF、Chrome 和 Safari)。这是其中一种情况(case2)中的示例:

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

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

感谢大家的建议。

阿布·K。

于 2012-11-02T12:06:51.203 回答
0

触发器在所有浏览器中都可以正常工作,我认为问题是因为选择器是一个类,所以如果“jcarousel-next”它是在运行时添加的,则有必要在之后添加处理程序

这是一个示例,并且工作正常,第一个文本什么也不做。第二次从第三次引发点击事件。第三个有点击事件...

正在运行.... 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!');
    }
于 2012-10-31T16:05:09.787 回答