2012-09-18 15 views
0

我有一個隱藏div下的選擇框,我做了一個函數,當我點擊某個地方時,選擇框出現了正確的選項,但它沒有「T很好地渲染,控制不能正常工作,這是代碼:Jquery使用Append()或html()或text()來移動SelectBox

$(function() { 
    $('.NewDiv').click(function() { 
     $(this).append($('#MySelectBox')); 
     $('#MySelectBox').val($(this).attr('value')); 
    }); 
}); 

<select id="MySelectBox> 
    <option... 
</select> 

我追加,HTML和文本試過了,所有的人都渲染選擇框,但它不能正常工作的證明Chrome和Firefox。

謝謝!

+0

你能給出確切的代碼和它是如何不工作的例子嗎? –

+0

你可以在這裏測試http://jsfiddle.net/XnWyY/3/(試着在移動它之後選擇一個選項) – Santiago

回答

2

你看到這個問題的原因是因爲你將事件綁定到div,這個div現在包含選擇框。因此,當您選擇一個選項時,它將該選項更改爲「0」,因爲它沒有讀取任何值。

This example解決了您的問題。

+0

Ahhhh你是完全正確的!謝謝! – Santiago

+0

很高興我能幫助你! –

+0

@Korvin Szanto對不起,我誤解了這個問題..你的解決方案是正確的+1 –

0

更改下面的行。

$(this).append($('#MySelectBox').html()); 
+0

如果OP想要多次添加它,這很好。我懷疑他只是想讓它可見一次... – tucuxi

+0

似乎不工作http://jsfiddle.net/XnWyY/5/ – Santiago

1

一個問題,我看到的是,當前的代碼放selectdiv,從而對select任何點擊事件導致的操作重複。

破碎例子:http://jsfiddle.net/XnWyY/

也許這是你在找什麼(點擊div後移動select,追加新option):http://jsfiddle.net/XnWyY/1/

或單擊顯示,追加新optionhttp://jsfiddle.net/XnWyY/2/

+0

你可以在第一個例子中看到問題,如果你在移動之前點擊組合框它工作正常,但如果你移動組合,然後點擊它,它改變了你的行爲。嘗試點擊「戰鬥機」後移動組合框在這裏http://jsfiddle.net/XnWyY/3/ – Santiago

0

隱藏div可能會更簡單,然後在點擊觸發器後顯示()它。相關的代碼是在http://jsfiddle.net/L67LT/1/

$('#MySelectBox').hide(); 
var externalValue="Fighter"; 
$(function() { 
    $('#newDiv').click(function() { 
     console.log("clicked!"); 
     var box = $('#MySelectBox'); 
     box.show(); box.val(externalValue); 
    }); 
}); 

另外,在使用$(this).attr('value')是失敗(在這種情況下,它是對newDiv DIV,它沒有所謂value屬性的引用)。

-1

對不起,我想我現在誤會固定的代碼的問題:

$('#newDiv').click(function() { 
    $(this).append($('#MySelectBox')); 
    $('#MySelectBox').val($(this).attr('value')); 
    $('#MySelectBox').bind("click", function(e) { 
     e.stopPropagation(); 
    }); 
}); 

小提琴: http://jsfiddle.net/hghNJ/1/

相關問題