开发者

button action with jQuery Mobile,

Having trouble constructing a button dynamically with jQuery Mobile. Copy and run. See notes in code.

<!DOCTYPE html>
<html>
  <head>
    <title>MSC Pre-Close Application</title>
    <meta charset="utf-8"/>

    <!-- standard Jquery/jQuery Mobile Libraries -->
    <script src="jquery.mobile/jquery.js"></script>
    <script src="jquery.mobile/jquery.mobile.js"></script>
    <link rel="stylesheet" href="jquery.mobile/jquery.mobile.css" />


<BR/>
<div data-role="page" id="mainmenu">
    <div data-role="header" data-position="inline">
    <h1>Main Menu</h1>
    </div>
    <div class="ui-body ui-body-c">
    <div data-role="content">   

        <div class="ui-block-a"><button id="click_me" type="submit" data-theme="a" data-icon="home">Click me to change the button to my right</button></div>
        <div class="ui-block-a"><button class="cl_pre_phone1" type="submit" rel="external" data-theme="a" data-icon="home">Primary Phone</button></div>

<script>
$(document).ready(function()
{
    // this changes the label but not the href action.
    $(".cl_pre_phone1").html("<a href='google.com'> Google</a>");

    $("#click_me").click(function() {
        alert("this should change the text and href of the button!");
        // here I would like to change the value as well as the href action, but it does not work.
        $(".cl_pre_phone1").html("<a href='yahoo.com'>Yahoo</a>");
        //$(".cl_pre_phone1").append("<a href='yahoo.com'>Yahoo</a>");
        //$(".cl_pr开发者_运维技巧e_phone1").append("<a href='yahoo.com'>Yahoo</a>").reload(true);

    });         
});

</script>


You're getting messed up by the enhancement which jQM does. Your button is getting rewritten to:

<span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Primary Phone</span>
<span class="ui-icon ui-icon-home ui-icon-shadow"></span></span>
<button class="cl_pre_phone1 ui-btn-hidden" type="submit" data-theme="a" data-icon="home"  aria-disabled="false">Primary Phone</button>

One way round this would be to change the call inside the callback to:

$(".cl_pre_phone1").attr("href", "http://yahoo.com").parent().find(".ui-btn-text").text("Yahoo");

or you could replace the whole ui-block-a div.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜