2013-02-05 24 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,但這是無關的。

相關問題