我有一个javascript(!)代码,用于检测Safari浏览器:
var isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;
// At least Safari 3+: "[object HTMLElementConstructor]"
完美无缺。现在,当isSafari
变量为true
时,我想执行一些jquery(不是javascript!)代码
$(document).ready(function(){
some jquery here doing some jquery stuff
...
加上如果变量isSafari
是false
我想执行不同的jquery(!)代码:
$(document).ready(function(){
some other different jquery code here doing other jquery stuff
........
我尝试了简单的javascript if / else语句,但似乎每次都执行两个jquery代码,就好像它根本不吃if / else。
我认为我需要一些语法来“合并”它或什么东西,在网上找不到任何东西。
谢谢!
编辑:所以这是完整的代码:
var isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;
// At least Safari 3+: "[object HTMLElementConstructor]"
//accordion
$(document).ready(function(){
if (isSafari) {
$('.module-desc').hide();
$('.accordion > h4').click(function(){
$('.accordion').find('.module-desc').hide('fast');
var thisBlock = $(this).parent().index('.accordion');
$('.accordion').find('.active').not($(this)).removeClass('active');
$(this).toggleClass('active').next().slideToggle('fast');
$(this).parent().toggleClass('activeToggle').siblings()
.removeClass('activeToggle').children('.module-desc').hide('fast');
return false;
});
} else {
$('.module-desc').hide();
$('.accordion > h4').click(function(){
$('.accordion').find('.module-desc').hide('fast');
var thisBlock = $(this).parent().index('.accordion');
$('.accordion').find('.active').not($(this)).removeClass('active');
$(this).toggleClass('active').next().slideToggle('fast');
$(this).parent().toggleClass('activeToggle').siblings()
.removeClass('activeToggle').children('.module-desc').hide('fast');
return false;
});
$('.accordion').click(function(){
if (isSafari == false) {
$('.accordion').find('.module-desc').hide('fast');
var thisBlock = $(this).index('.accordion');
$('.accordion').find('.active').not($(this.children('h4'))).removeClass('active');
$(this).children('h4').toggleClass('active').next().slideToggle('fast');
$(this).toggleClass('activeToggle').siblings()
.removeClass('activeToggle').children().children('.module-desc').hide('fast');
return false;
};
});
}
});
答案 0 :(得分:0)
您似乎在问一个非常基本的if/else
问题:
var isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;
$(document).ready(function(){
if (isSafari) {
$("#result").html("Yeah Found Safari!");
} else {
$("#result").html("Not Safari");
}
});
这绝对不会执行if/else
的两个分支。
如果您的意思是提出更多要求,请进一步说明或向我们展示您无法正常使用的确切代码。
仅供参考:所有jQuery都是Javascript。 Javascript是语言。 jQuery是一个用Javascript编写的库。