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”是控制组中的两个按钮。控制组点击方法初始化如下:

$("#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 回答