2012-12-20 127 views
1

這可能是最簡單的解釋,如果你只看我的fiddle,我已經評論清楚。基本上,我使用的是Harvest的chosen插件,我只是試圖讓我在它旁邊放置的「去」按鈕成爲所選選項的data-url屬性的鏈接。我大量使用控制檯來嘗試調試,但我無法使其工作。jQuery +選擇插件:添加網址到選定的選項

我只希望發生這種情況:當您從所選菜單中選擇一個選項時,go按鈕的href將成爲該選擇的鏈接。看看小提琴,一切都會變得清晰。

+0

給予好評的我展示一些新的東西。選擇的是一個很酷的插件。 –

回答

3

您的網址選擇更改爲

url = $('#cancer-select option:eq(' + selectedIndex + ')').attr('data-url'); 

和取出空<option>標籤周圍您選擇選項似乎解決它。從OP

編輯:

您還需要你的函數改爲

$('#button-go').attr('href', '' + url); 

http://jsfiddle.net/nickcoxdotme/3cdPp/8/

+0

我在這裏進行了這些更改:http://jsfiddle.net/nickcoxdotme/3cdPp/5 /。但它似乎並不奏效。 – nickcoxdotme

+0

啊。我還必須使我的最後一行'$('#button-go')。attr('href',''+ url +'');'。見[這裏](http://jsfiddle.net/nickcoxdotme/3cdPp/7/)。你會添加這個到你的答案,我會標記它的權利?另外,你會解釋('+ selectedIndex +')語法嗎?我從來沒有見過。 – nickcoxdotme

+0

@nickcoxdotme是的,我已經到了那一步,我會更新我的答案。這條線的問題在於它在一個字符串內,所以它真的在尋找一個不存在的'selectedIndex'索引,因此控制檯中的'undefined' – Sharlike

0

那麼它似乎並不像你可以添加一個數據屬性,並期望所選擇的將它帶到你的新列表中。所以,我提出這樣的:Create an array of the urls before you make the chosen and stach the url by the option name.

我加了這一點:

var dataURLS = new Array(); 

var options = $('option'); 

options.each(function(){ 
    dataURLS[$(this).text()] = $(this).attr('data-url'); 
}); 

,改變了這一點:

url = $('#cancer-select option:eq(selectedIndex)').attr('data-url'); 

這樣:

url = dataURLS[$(this).text()]; 
$('.chzn-single').attr('href',url);    

看控制檯輸出,我認爲它做你以後的事情。

編輯:更新了準確性。

+0

'href'屬性只是說'javascript:void(0)',並且控制檯仍然說'url'未定義... – nickcoxdotme

相關問題