如果javascript变量为true,则执行jquery

时间:2014-10-19 18:03:37

标签: javascript jquery if-statement

我有一个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
...

加上如果变量isSafarifalse我想执行不同的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;       
      };
    });

  }
});

1 个答案:

答案 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编写的库。