我目前正在为jQuery Mobile实现一个blankContent SimpleDialog。 这是html:
<li>
<a href="#page1" id="searchdialog" data-theme="" data-icon="search">Search Routes
</a>
</li>
这是jQuery:
<script type="text/javascript">
$(document).delegate('#searchdialog', 'click', function() {
$('<div>').simpledialog2({
mode: 'blank',
headerText: 'Route Search',
headerClose: true,
blankContent :
'<div id="content" data-role="content"><label>Enter Your Search:</label><div data-role="fieldcontain"><fieldset data-role="controlgroup">' +
'<label for="textinput7">Start</label><input id="start" placeholder="" value="" type="text"/></fieldset></div>'+
'<div data-role="fieldcontain"><fieldset data-role="controlgroup"><label for="textinput9">End</label>'+
'<input id="end" placeholder="" value="" type="text" /></fieldset></div>'+
'<a data-role="button" data-transition="fade" data-theme="b" href="#page6" data-icon="search" data-iconpos="left" onclick="alert($("#start").val(),$("#end").val())">Search</a>'
})
});
</script>
我不能为我的生活找出造成这个错误的原因:
未捕获的SyntaxError:意外的令牌}
只有在单击“搜索路径”链接时才会出现错误,这导致我认为它是jquery中的错误。有趣的是,如果我做到了
的onclick = “警报()”
而不是
的onclick = “警报($(” #开始 “)。VAL(),$(” #结束 “)。VAL())”
然后它可以工作,但我需要有另一个的变量:
onclick =“location.href =”/ search /?start =“+ $(”#start“)。val()+”&amp; end =“+ $(”#end“)。val()”
关于如何实现这一目标的想法?任何快速而肮脏的解决方案都可行感谢
答案 0 :(得分:2)
你的行:
'onclick="alert($("#start").val(),$("#end").val())"'
导致错误。你的onclick属性中有引号冲突(和非字符串逗号!)
你最好创建一个隐藏/显示:无元素w /其中的硬编码信息,然后简单地引用它。
或者指定处理程序@创建html的时间(类似于已经委派的处理程序)
编辑:基本上采取这个:
'<a data-role="button" data-transition="fade" data-theme="b" href="#page6" data-icon="search" data-iconpos="left" onclick="alert($("#start").val(),$("#end").val())">Search</a>'
而是这样做:
'<a class="some-wonky-alert" data-role="button" data-transition="fade" data-theme="b" href="#page6" data-icon="search" data-iconpos="left" >Search</a>'
$('a .some-wonky-alert').on('click', function()
{
alert($("#start").val() + $("#end").val());
});
作为委派的季节@您的便利
edit2:当然你可以尝试逃避引号 - 虽然这可能有用 - 但它不能解决所涉及的不良做法:)