我需要在某些触发元素上启动插件。
我正在使用它:
$( ':jqmData(role="page"):jqmData(trig="true")' ).live( 'pagebeforeshow',function(e){
console.log("detected");
// stuff to do...
});
由于这是我的背景页面(DOM中的第一个),使用 live 会在每次转换时触发它,并使用一个替换实时仅在初始触发器上触发它元素,而不是第二个元素被拉入。
问题: 如何设置一个“实时触发元素,但每个触发元素只运行一次”的功能?设置带数据的标志会有帮助吗?
感谢您的信息!
答案 0 :(得分:0)
设置一个变量,用于存储触发器是否已被占用。使用此变量作为条件是触发器以确保它只运行一次。然后在知道触发器可以再次运行时重置它。
答案 1 :(得分:0)
我想你的困境是你必须使用.live()
,因为最初在DOM中只有一个匹配的元素,而不是它们的排序方式?否则,.one()
应该可以正常工作。 manual有一个很好的示例,说明如何使用.one()
实现.bind()
,这是您使用.live()
执行此操作的方法,它应该可以解决问题:
function preparePage(e) {
$(this).die('pagebeforeshow', preparePage);
console.log("detected");
// stuff to do...
}
$(':jqmData(role="page"):jqmData(trig="true")').live('pagebeforeshow', preparePage);