1

私の英語でごめんなさい

私はこのコードを持っています:

jsfiddle

問題なし

「選択」が次のような場合にコードを適応させる方法:

<select id="example[164]" name="example[164]" type="text" />
<option value="0">0</option>    
<option value="1">1</option>    
<option value="2">2</option>    
<option value="3">3</option>    
</select>
<div class="test">    
Some text...<br /><input type="checkbox" name="foobar" value="1" /><br />More text...       
</div>`

jsfiddle

ご協力いただきありがとうございます

:D)

4

1 に答える 1

0

この HTML は、HTML5 以外では有効ではありません。文字、数字、ピリオド、ハイフン、アンダースコア、およびコロンを属性に使用すること[]はできません。id

その無効な ID を jQuery と一致させるには、2 つのバックスラッシュでエスケープする必要が[]あります

// Match all select elements beginning with example in the id
$('#example\\[164\\]')

あなたの例のコンテキストでは、に変更$('#example')します$('#example\\[164\\]')

$('#example\\[164\\]').focus(function() {
    if (timer)
        clearTimeout(timer);
    $('div.test').css('display','block');
    // etc...

後で、次のようにも表示されます。 function(e) {

    if ($(e.target).closest('.example, #example\\[164\\]').length) return;

ただし、これは有効な id 属性ではないため (HTML5 を使用している場合を除く)、代わりに要素のname属性を照合する必要があります。これがサーバー側で生成されている場合は、代わりに id 属性を のような有効なものに変更して<select id='example_164'>ください。

// [] are valid in a name
$('select[name="example[164]"').focus(function() {
    if (timer)
        clearTimeout(timer);
    $('div.test').css('display','block');

これが更新されたjsfiddleです

于 2012-11-18T14:16:31.737 に答える