1

いくつかのJavaScriptコードによって動的に生成される雑学クイズページがあります。ほとんどのブラウザ(Chrome、Safari、Firefox、Opera、IE9)で正常に動作しますが、IE8で奇妙な問題が発生しています。ボタンクリックイベントハンドラーの一部として$(this).val()を呼び出すと、クリックされたボタンに値がある場合でも、応答として空の文字列が返されます。

関連するJavaScript:

$(document).ready(function() {
    $(document).on("click", ".btn", function() {
        if(panel % numPanels === 1)
            {category = $(this).val();}
        nextPanel(prop);
    });
});

関連するHTML:

<div id="buttons">
<button type="button" class="btn" value="One">Group One</button>
<button type="button" class="btn" value="Two">Group Two</button>
<button type="button" class="btn" value="Three">Group Three</button>
</div>

何が起きているのか分かりますか?

編集:私はjQuery 1.7.2を使用してconsole.log($(this).attr("value"))おり、とを使用しconsole.log($(this).prop("value"))て空白の文字列を返しています。

4

3 に答える 3

1

あなたが試すことができます$(this).attr("value")

また

あなたが使用することができます$(this).prop("value")

.prop()に必要なjQuery1.6以降のバージョン

于 2012-07-06T07:40:29.760 に答える
1

<button>のバグで、javascriptを使用する場合、私の急増はhtml-data属性を使用することです。

<div id="buttons">
    <button type="button" class="btn" data-value="One">Group One</button>
    <button type="button" class="btn" data-value="Two">Group Two</button>
    <button type="button" class="btn" data-value="Three">Group Three</button>
</div>

jqueryコードを使用します。

$(document).ready(function() {
    $(document).on("click", ".btn", function() {
        if(panel % numPanels === 1) {
            category = $(this).data("value");
        }
        nextPanel(prop);
    });
});
于 2012-07-06T07:53:22.187 に答える
0

を使用して値を変更してみてください.attr

編集:完全なコードを追加する

$(document).ready(function() {     
$(document).on("click", ".btn", function() {
     if(panel % numPanels === 1)
// retrieve using attr
         {category = $(this).attr("value");}
     nextPanel(prop);
 }); 
}); 
于 2012-07-06T07:40:18.503 に答える