2014-06-14 39 views
0

我在使用knockout.js和Html5时遇到了这个问题,但我还没有找到如何处理它。在这里,最重要的是在跟踪Href到另一个页面之前执行点击绑定。绑定本身有一个ajax方法来将数据插入到我的数据库中,所以在遵循声明的href之前,它必须执行此绑定。如何在遵循<Href>之前执行Knockout.js操作?

HTML是这样的:

 <div data-role="header" data-theme="b"> 
      <a href="secondForm.html" data-icon="back" rel="external"> Back </a> 
      <h1> Some Text </h1> 

      <div class="ui-btn-right" data-role="controlgroup" 
        data-type="horizontal"> 

       <a data-bind="click: linkCustomer" rel="external" id="continue" 
        data-role="button" data-theme="b" href="home.html">Continue</a> 

      </div> 
     </div> 

人们认为,这两个动作会被执行,但这种信念是错误的。唯一执行的操作是Href。

我的代码中有任何错误吗?

回答

1

这是一个经典案例之前Ajax请求不会启动。

您尝试执行一些js脚本,但在同一时间,您的浏览器重定向到href。

要解决这个问题,如果您使用的是角度,您可以使用承诺;否则,你必须停止事件传播,处理你的东西,然后,在完成时重定向到link.href属性。

+0

嗯,我一直在使用knockout.js,但看起来你有一点。我会寻找如何阻止事件的传播。 –

+0

selector.onclick = function(e){e.preventDefault()} – Nico

1

其进行客户端,test my fiddle here

http://jsfiddle.net/zXWTW/1/

我的猜测是该页面被卸载

+0

谢谢,先生。虽然这不是我个人的情况,因为不是有一个标签< a >我确实有一个< input >标签,标签< form >。据我所知,表单不允许有href。相反,它使用一个动作来跟随任何网址。我尝试了你的建议,但没用。 –

相关问题