jQuery - 如何更改 Chrome 和 Safari 的对象
我有一个片段,它采用当前隐藏的 div,它添加一个类,然后当用户单击按钮时将对象的 HTML 添加到 DOM。
它可以在 FF 和 IE 中工作,但不能在 Chrome 和 Safari 中工作,在最后两个中,它将对象添加到 DOM 但不显示,就像我说的,它在开始时是隐藏的,但我添加的类使其可见。更重要的是,我专门添加了 css('display', 'block'),它在 FF 中向 div 添加了“style=display:block”,但在 Safari 和 Chrome 中则没有。
这是我获取稍后要添加的 div 的 HTML 的代码,我将为每次点击添加一个副本:
var tempTicket = $('.tickets.extra:hidden').clone();
tempTicket.addClass('linea');
var ticketNombre = $('<div>').append(tempTicket.show().clone()).remove();
这是用户点击时的代码:
$('#addTicket').click(function(){
//Miro si los tickets anteriores están completos
console.log("quieres un ticket nuevo");
if(checkTickets()){
ticketNombre.css('display','block');
$(this).before(ticketNombre.html());
}
});
有帮助吗?谢谢!
I have a snippet that that takes a div, that is currently hidden, it adds a class and then when a user clicks on a button adds the HTML of the object to the DOM.
It works in FF and IE, but not in Chrome and Safari, in these last 2 it adds the object to the DOM but it doesnt display, like I said it's hidden at the start but the class I add makes it visible. Even more I specifically add css('display', 'block'), which in FF adds a "style=display:block" to the div but not in Safari and Chrome.
Here's the code where I get the HTML of the div I want to add later, I will add a copy for each click:
var tempTicket = $('.tickets.extra:hidden').clone();
tempTicket.addClass('linea');
var ticketNombre = $('<div>').append(tempTicket.show().clone()).remove();
Here's the code when the user clicks:
$('#addTicket').click(function(){
//Miro si los tickets anteriores están completos
console.log("quieres un ticket nuevo");
if(checkTickets()){
ticketNombre.css('display','block');
$(this).before(ticketNombre.html());
}
});
Any help? thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
现场演示
LIVE DEMO
我通过样式修复它。
由于 div 已正确插入,我将其添加
到类中,因此它实际上显示了它。
I fix it by styles.
Since the div was inserted correctly i added
to the class so it actually showed it.
那些额外的
.clone()
和.remove()
调用在那里做什么?在尚未包含在 DOM 中的元素上调用
.show()
不太可能起作用在已包含在 DOM 中的
使用
.html() 序列化您的临时票证
可能会丢失属性。试试这个:
What are those extra
.clone()
and.remove()
calls doing there?Calling
.show()
on an element that isn't yet in the DOM is unlikely to workserialising your temporary ticket with
.html()
could lose attributes or properties.Try this: