2013-02-05 25 views
0

我希望能够识别和处理链接元数据与现场活动。所以,如果我有一个像这样的链接:如何将元素的数据传递到jQuery-Mobile事件beforepageload和pageshow

<a href="#workorder_new" data-city="austin" data-state="tx">Click here</a> 

不知怎的,我需要得到上面的元素(特别是数据属性)进入“直播”功能,然后调用的JavaScript函数,用jQuery移动生活元素,像这样:

$('[href=#workorder_new]').live('click', function() 
{ 
    var target  = $(this); 
    var workorder_new = new workorder_new_controller(target.data); 

    $('#workorder_new').bind('pagebeforechange',function(event, ui) 
    { 
    workorder_new.before(); 
    }); 

    $('#workorder_new').bind('pageshow',function(event, ui) 
    { 
    // var page = event.target.id; 
    workorder_new.after(); 
    }); 
}); 

function workorder_new_controller(data) 
{ 
    var city = data.city; 
    var state = data.state; 

    this.before = function(){ 
    // console.log(data); 
    } 
    this.after = function(){ 
    // console.log(data); 
    var today = new Date(); 
    var tomorrow = new Date(today.getTime() + (24 * 60 * 60 * 1000)); 
    $('#workorder_new_form [name=due_date]').val(readable_date(tomorrow)); 
    } 
} 

所以这只是我现在试图将它拼凑在一起的一些代码。但我认为我在这里偏离了路线。有人可以提供一些建议,告诉我如何按预期工作?或者至少有一些提示让我走上正确的道路?谢谢!

回答

0

想通了:

var params = {}; 

$('a').live('click', function(event) 
{ 
    $.each($(event.target)[0].attributes, function(key, value){ 
    params[value.name] = value.value; 
    }); 
}); 

$('div[data-role="page"]').live('pageshow',function(event, ui) 
{ 
console.log(params) 
}); 

源:http://moorberry.net/blog/link-attributes-jquery-mobile/

0
var target = $(this); 
var city = target.data('city'); 
var state = target.data('state'); 

根据您的jQuery的版本,你应该改变.live.on,但这是无关的。

相关问题