我有一个简单的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等......
任何解决方案的人?
答案 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。