-6ren">
gpt4 book ai didi

javascript - 有没有办法监听 Html 元素样式的变化 - Backbone.JS

转载 作者:行者123 更新时间:2023-12-02 19:52:02 25 4
gpt4 key购买 nike

我有以下 HTML 模板:

    <li id="imovel" style="<%=  display %>">
<div class="thumbnail">
<a href="#">
<img src="http://placehold.it/90x60"></img>
<%= textvar %>
</a>
</div>
</li>

根据某些情况,显示是 display: nonedisplay: block

我想要这个 View :

var imovelView = Backbone.View.extend({

el: $('#imovel')

,template: _.template( $("#listing_template").html())

,events: {
"change:display #imovel" : "activate"
}

,initialize: function(){
this.on('change:display', this.toggle, this);
this.collection.bind('add', this.render, this);
}

,activate: function(item){
alert("change display");
}

,render: function(item){
var showPerPage = $('#show_per_page').val();
var totalEntries = this.collection.length;

var pageMax = Math.ceil( showPerPage/totalEntries );
var displayValue = "display: none;";

if(totalEntries <= showPerPage){
displayValue = "display: block;";
}

var variables = { textvar: item.get("Lat"), display: displayValue };
var template = this.template( variables );

$('#max_page').val(pageMax);
$('#content').append( template );
resizeViewport();
}

});

当我在显示中执行 change:display 时,我的意思是监听 el 样式显示属性中的更改。

可以这样做吗?

最佳答案

您可以更改代码以触发正在隐藏/显示的元素上的事件吗?这相当于在设置显示非隐藏/隐藏时添加两行。 $(el).trigger('display:changed') 位于正在更改其显示状态的元素上。然后从 Backbone.View 中监听元素上的这个自定义事件 disapearingElement.on('display:changed', doSomething)

任何其他解决方案都会非常困惑,并且会给浏览器带来持续的负载。您必须创建辅助方法,该方法将使用 setInterval/setTimeout 进行轮询,该方法将始终检查元素的状态并在其更改时触发回调/自定义事件 - 这是跨浏览器实现它的唯一方法。

但说实话......不要留下困惑的代码 - 如果这对你来说没问题,好吧 - 但想想当你离开后谁将使用这些代码:P

关于javascript - 有没有办法监听 Html 元素样式的变化 - Backbone.JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9146078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com