2016-05-16 63 views
-1

我有一個靜態代碼,如:如何設置變量爲對象?

var LayersliderInit = function() { 

    return { 
     initLayerSlider: function() { 
      $('#layerslider').layerSlider({ 
       skinsPath : '/../assets/global/plugins/slider-layer-slider/skins/', 
       skin : 'fullwidth', 
       thumbnailNavigation : 'hover', 
       hoverPrevNext : false, 
       responsive : false, 
       responsiveUnder : 960, 
       layersContainer : 960 
      }); 
     } 
    }; 

}(); 

現在我想改變skinspPth對象如下:

skinsPath : webroot+'/assets/global/plugins/slider-layer-slider/skins/', 

凡根目錄的定義與適當的值初始化。我的整個代碼是:

var LayersliderInit = function() { 
var webroot = $('#webroot'); 
    return { 
     initLayerSlider: function() { 
      $('#layerslider').layerSlider({ 
       skinsPath : webroot+'/assets/global/plugins/slider-layer-slider/skins/', 
       skin : 'fullwidth', 
       thumbnailNavigation : 'hover', 
       hoverPrevNext : false, 
       responsive : false, 
       responsiveUnder : 960, 
       layersContainer : 960 
      }); 
     } 
    }; 

}(); 

但是,當我檢查skinsPath對象,它看起來像:

skinsPath : webroot+'/assets/global/plugins/slider-layer-slider/skins/', 

我將如何設置webroot的變量,以便它是串聯的?

+2

是不是'$( '#Webroot公司')'一個jQuery對象?你爲什麼試圖在一個字符串中使用它? – Phil

+0

什麼是webroot? –

+0

使用eval(webroot),表示webroot是一個變量。 –

回答

0

您的變量webroot是一個jQuery對象。這不是一個字符串。所以你的表情:

webroot+'/assets/global/plugins/slider-layer-slider/skins/' 

是不會去你想要的。它會嘗試在$('#webroot') jQuery對象上進行某種字符串轉換,然後將其連接起來。您需要說明您希望webroot在該表達式中,因此我們可以幫助您獲取該值並將其用於表達式中。

您的意思是從DOM中的#webroot對象獲取某些屬性或值嗎?你期望字符串值來自哪裏?也許如果您向我們展示與#webroot對象關聯的HTML,我們可能會更好地瞭解哪種解決方案適合您。

如果#webroot<input>標籤,那麼也許你想這樣的:

webroot.val() + '/assets/global/plugins/slider-layer-slider/skins/' 
+2

我認爲這應該作爲評論發佈,而不是回答 –

+0

@TheFlash - 我解釋了爲什麼他們的代碼無法工作,因爲OP提供的信息並基於我們有限的信息爲解決方案提供了一個可能的方向。這是目前可以做到的最好的。 – jfriend00

+0

@sattar_kuet_bd - 這是否回答你的問題?如果是這樣,請點擊答案左邊的綠色複選標記以向社區表明這一點,併爲您在堆棧溢出時遵循適當的程序獲得一些信譽點。如果沒有,請解釋你仍然困惑的部分問題。 – jfriend00