例如jquery mobile,使用 .live() 或 .bind() 在导航上执行 ajax 的正确方法
我有一个像这样的导航栏
<div id="top" data-role="navbar" data-type="horizontal">
<ul>
<li><a href="#a">A</a></li>
<li><a href="#b">B</a></li>
<li><a href="#c">C</a></li>
<li><a href="#d">D</a></li>
</ul>
</div>
我有一个
然后我添加我的 javascript
<script language="javascript">
$('div[id="top"] ul li a').live("click", function(e) {
e.stopImmediatePropagation();
e.preventDefault();
var html = //SOME HTML
var content = $('div[id="content"]');
$(content).html(html);
});
</script>
但是,它只能工作,即将 div 内容更改为我的 HTML,如果我单击该按钮两次,如果我单击一次,它只会给我默认页面。知道如何纠正吗?
我在这里创建一个小提琴供您测试 http://jsfiddle.net/3Rcem/
我找到了使用 .click() 而不是 .live 的解决方案('click')但是这样我无法绑定到 Jquery mobile 建议的'vclick',任何人都可以帮助我使用 live 吗?
I have a navigation bar like this
<div id="top" data-role="navbar" data-type="horizontal">
<ul>
<li><a href="#a">A</a></li>
<li><a href="#b">B</a></li>
<li><a href="#c">C</a></li>
<li><a href="#d">D</a></li>
</ul>
</div>
And I have a <div id="content">
for example
Then I add my javascript
<script language="javascript">
$('div[id="top"] ul li a').live("click", function(e) {
e.stopImmediatePropagation();
e.preventDefault();
var html = //SOME HTML
var content = $('div[id="content"]');
$(content).html(html);
});
</script>
However, It only works i.e. change the div content to my HTML if I click twice to the button, if I click one It only give me the default page. Any idea how to correct it ?
I create a fiddle here for you to test
http://jsfiddle.net/3Rcem/
I find a solution to use .click() instead of .live('click') but with this I cannot bind to the 'vclick' which is suggested by Jquery mobile, anyone can help me with using live ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我不知道为什么,但是当我将
.live("click",
更改为.click(
时,效果很好。顺便说一句:
$('div [id="content"]')
不正确,您应该执行$('div#content')
,并且可能只是$('#content')
代码>也是这样的:<代码><脚本language="javascript"> 不正确,应该是:
。
I don't know why, but when I changed
.live("click",
to.click(
it worked fine.BTW this:
$('div[id="content"]')
is not right. You should do$('div#content')
and probably just$('#content')
.Also this:
<script language="javascript">
is not correct, it should be:<script type="text/javascript">
.试试这个。我现在将标题显示为数据,但您可以更改行为以满足您的需求。希望这有帮助!
Try this one. I am displaying now the title as data, but you can change behavior to match your needs. Hope this helps!
这对我有用。我所做的只是更改 href 以删除额外的导航部分。 (例如从#A 到#)。
This worked for me. All I did was change the href's to remove the extra nav part. (e.g. from #A to #).