2013-05-09 33 views
1

我試圖放在一起的電子郵件列表模板與requirejs和Backbone.js一起使用Handlebars.js,初始呈現按預期顯示 - 帶有添加圖標的單個電子郵件輸入添加更多。Webshims佔位符在追加動態內容時被隱藏

var EmailView = bb.View.extend({ 

    tagName: 'ul', 
    className: 'emailList', 

    events: { 
     "click .addEmail"  : "addEmail", 
     "click .deleteEmail" : "deleteEmail" 
    }, 

    initialize : function() { 
     this.template = hb.compile(hbTemplate); 
    }, 

    render : function() {       
     this.$el.htmlPolyfill(this.template(this.model.toJSON())); 
     this.updateIcons(); 
     return this; 
    }, 
    ... 

的addEmail處理程序(我試過appendPolyfill(),appendPolyFillTo,以及當前updatePolyFill(),所有生產,增加新的生產線項目相同的結果,但所有的佔位符消失(這是真正的控制之外的$ EL,它似乎是整個頁面。)

addEmail : function(e) { 
     this.$el.append(this.template({})); 
     this.$el.updatePolyfill(); 
     this.updateIcons(); 
    } 

我要的是現有的控制,以保持自己的佔位符文本和新添加的顯示以及佔位符的文本。我在想什麼?

如果有幫助,模板看起來像這樣...

<li> 
    <span class="requiredPrompt">*</span> 
    <img class="icon" alt="" src="/images/emailIcon.png" /> 

    <input type="email" class="emailAddress" value="" placeholder="Email Address" maxlength="50" required/> 

    <a class="deleteEmail" href="javascript:void(0)"> 
     <img class="icon" alt="" src="/images/delFile.png" /> 
    </a> 

    <a class="addEmail" href="javascript:void(0)"> 
     <img class="icon enabled" alt="" src="/images/addFile.png" /> 
     <img class="icon disabled" alt="" src="/images/addFile-disabled.png" /> 
    </a> 
</li> 
+0

[jsFiddle示例](http://jsfiddle.net/ttubbs/D3wYT/) - 顯示佔位符提示時隱藏(IE9),添加dyanmic內容時甚至只顯示警報。 在我看來,這與polyfiller.js在'beforeunload'事件中添加有關,至少我可以在調試器中看到polyfiller正在調用與'isReady'('WINDOWLOAD',true)相關的'triggerDomUpdate'。儘管如此,我並不完全遵循這一點。 – 2013-05-10 13:12:26

+0

能夠通過將我自己的'beforeunload'處理程序添加到blur()然後清除'.user-error'類標記來強制我想要的行爲。我用'修復'更新了jsFiddle示例。它不應該像這樣默認? – 2013-05-10 13:47:52

+0

我是webshims的開發人員,對我來說這看起來像一個奇怪的錯誤。我會研究它並儘快修復它。所以,不要再爲此煩擾自己了:-D – 2013-05-10 15:38:31

回答

0

作爲一種快速修復,您可以簡單地在您的點擊處理程序上返回false或preventDefault()。這是一個修改的jsfidlle

jQuery('.addEmail').click(function() { 
    jQuery('.emailList').appendPolyfill(emailItem); 
    return false; 
}); 

Webshims認爲頁面已卸載並清除所有佔位符。

+0

嘗試返回false,這在我處理的處理程序中起作用,但在我的大型應用程序中,有很多地方需要更新,最好是下載新的版本。所有工作如預期現在。謝謝一堆! – 2013-05-14 01:09:06