2013-03-08 88 views
0

我很困惑,我的頭很疼,請幫助。在基於元素類的Jquery中設置變量

我想發送一個變量fancybox.js當一個元素有一個類'選定'。這工作:

var showMe = true; 

這也適用於:

if(a){ 
    var showMe = true; 
} 

這將導致一個警告說 「類中選擇了」:

if($('#shuffle').hasClass('selected')){ 
    alert("class is selected"); 
} 

伊夫還檢查在Firebug並選擇類。

的問題是我這樣做的時候它不工作:

if($('#shuffle').hasClass('selected')){ 
    var showMe = true; 
} 

SHOWME沒有被設置爲true。

我知道這一定很簡單,在此先感謝您的幫助。

編輯這是什麼工作: 出於某種原因,類更改爲選中沒有設置showMe = true。我添加了一個.click函數,而不是它的工作。不知道爲什麼,但如果你知道我應該在這裏閱讀的話,那麼請通過這裏的鏈接。

$(function() { 
    $("#shuffle").click(function(){ 

    showMe = true; 
    console.log(showMe); 
    }); 
}); 

感謝大家的迴應,我猜你的答案沒有工作的原因是與我問這個問題的方式有關。乾杯

回答

1

也許你看看這個:

var showMe = ($('#shuffle').hasClass('selected')) ? true : false; 
alert(showMe); 

一定的DOM是當你運行準備好了!

+0

我也得到了與該代碼相同的結果。 – fairywings78 2013-03-08 07:37:02

+0

'$(function(){var showMe =($('#shuffle')。hasClass('selected'))?true:false; alert(showMe);});'用'

'適合我(警報'true') – sebastian 2013-03-08 07:39:40

+0

我也收到警報,問題是showMe未設置爲true。 – fairywings78 2013-03-09 00:45:30

0

嘗試

if($('#shuffle').hasClass('selected')){ 
    showMe = true; 
} 

我提出showMe全球範圍(通過去除var關鍵字),現在在任何你訪問它使用它像

if(typeof(window.showMe) != 'undefined') 
alert(showMe); 
+0

感謝您的迴應,這段代碼也沒有給我想要的結果。 我通過附加到一個事件解決了這個問題,我確定有一些正確的術語在這裏使用,但我不知道它,也許它假設我將附加到一個事件,我不知道。 我會將解決它的代碼粘貼到我的文章中,謝謝回覆,但我猜測原因更多的是由於缺乏定義問題的經驗。 – fairywings78 2013-03-10 03:30:25

2

使用var showMe = 'true'你設置一個局部變量。如果你想在函數外部使用該變量,只需使用將設置全局變量的showMe = 'true' <。

像這樣

if($('#shuffle').hasClass('selected')){ 
    showMe = true; 
} 
+0

感謝您的迴應,這段代碼也沒有給我想要的結果。 我通過附加到一個事件解決了這個問題,我確定有一些正確的術語在這裏使用,但我不知道它,也許它假設我將附加到一個事件,我不知道。 我會將解決它的代碼粘貼到我的文章中,謝謝回覆,但我猜測原因更多的是由於缺乏定義問題的經驗。 – fairywings78 2013-03-10 03:27:29

1

聲明你的文檔之前準備變量或什麼的。這樣你就可以把它變成全球性的。

<script type="text/javascript"> 
    var showMe = false; 
    jQuery(document).ready(function($) { 
     console.log(showMe); 
     if ($('#shuffle').hasClass('selected')) 
     { 
      showMe = true; 
      console.log(showMe); 
     } 
    }); 
</script> 
相關問題