2

別のメソッドでコントロールグループの.click()メソッドを呼び出そうとしています。これが私がこれまでに持っているものです:

$("#list").click(function() {
    searchclick = true;
    value = $("#listval").text().split(" - ");
    window.location.href = "index.html";
    item = $("#listval").attr("title");
    if (item == "this") {
        $("#this").click();
    } else {
        $("#that").click();
    }
});​

「#this」と「#that」は、コントロールグループの2つのボタンです。コントロールグループのクリックメソッドは、次のように初期化されます。

$("#this, #that").click(function(){ ...code... }

何か助けはありますか?

編集:これはhtmlがどのように見えるかです:

<div data-role="content" class="ui-content" role="main">
            <div id="item" data-role="fieldcontain">
                <fieldset data-role="controlgroup" data-type="horizontal">
                    <legend>
                    </legend>
                    <input id="this" name="choose" value="val1" type="radio"/>
                    <label for="this">
                        val1
                    </label>
                    <input id="that" name="choose" value="val2" type="radio"/>
                    <label for="that">
                        val2
                    </label>
                </fieldset>
            </div>
            ...
4

2 に答える 2

0

これにより、現在の値がサーバーに送信されます。サーバーには、送信された値を処理し、適切な応答を生成するコードがあります(おそらく)。

ノート:

  • searchclickvalueグローバル変数ですか?その場合、それらは#thisおよび#thatのクリックのハンドラー内で使用できますが、フォームを送信すると失われます。
  • itemローカル変数ですか?その場合は、次のように宣言する必要がありますvar item = $("#listval").attr("title");。原則として、どうしても必要な場合を除いて、グローバル変数を作成しないでください。
  • 次のコードは、フォーム内の他のコードと干渉する可能性があります。他のコードを修正するのが難しい場合は、他のオプションを試すことができます。フォームを送信する代わりに、ajax呼び出しを実行します(これについては、jQueryのドキュメントを参照してください)。
$("#list").click(function() {
    searchclick = true;
    value = $("#listval").text().split(" - ");
    item = $("#listval").attr("title");
    if (item == "this") {
        $("#this").click();
    } else {
        $("#that").click();
    }

    //your controls are inside a form, right?
    document.forms[0].submit();

});​
于 2012-12-31T18:19:20.773 に答える
0

結局、変数をローカル変数に設定し、index.htmlページでそれらを呼び出しました。ではindex.html、try、catchブロックを使用して、ページが読み込まれたときにローカル変数に変数があるかどうかを確認しました。これが私のコードですindex.html(他のページでリストをクリックした後:

try{
//grab variables set in search
if(window.localStorage.getItem("searchclick") == "true"){
    searchclick = true; 
}else{searchclick = false}
thisthat = window.localStorage.getItem("thisthat");
if(thisthat == "this"){
    $("#this").click();
    $("#thislabel").addClass("ui-btn-hover-c");
    $("#thislabel").addClass("ui-radio-on");
    $("#thislabel").addClass("ui-btn-active");
}else if(thisthat == "that"){
    $("#that").click();
    $("#thatlabel").addClass("ui-btn-hover-c");
    $("#thatlabel").addClass("ui-radio-on");
    $("#thatlabel").addClass("ui-btn-active");
}
//clear local variables after being used
window.localStorage.clear();

} catch(err){alert(err);}

于 2013-01-10T15:00:11.627 に答える