0

我正在尝试通过引用锚标记内的处理程序函数来为 jQuery mobile 中的锚标记设置单击处理程序(我需要以这种方式进行操作,原因很麻烦)。如下面的代码所示,当我将一个变量传递给处理函数时,它是一个整数,但当我传递一个字符串时它不起作用。谁能解释这是为什么?

<head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.css"
    />
    <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.js"></script>
</head>

<body>
    <script>
        $(document).ready(function () {

            //The Line Below works
            $("#main").html('<a href="#" data-theme="a" onclick="test(' + '2' + '); return false" rel="external" data-role="button">click test</a>');

            /*
//The Lines Below Do not work
//$("#main").html('<a href="#" data-theme="a" onclick="test('+'hello world'+'); return false" rel="external" data-role="button">click test</a>');
var test = 'hello world';
//$("#main").html('<a href="#" data-theme="a" onclick="test('+test+'); return false" rel="external" data-role="button">click test</a>');
*/

            $("#main").trigger('create')

        });

        function test(e) {
            alert(e);
        }
    </script>
    <div data-role="page" class="type-interior">
        <div id="main" data-role="content"></div>
    </div>
</body>

4

1 回答 1

0

试试这个 ::

var testParam = "'hello world'";

$("#main").html('<a href="#" data-theme="a" onclick="test('+testParam +'); return false;" rel="external" data-role="button">click test</a>');
于 2012-05-30T10:36:13.970 回答