我在頁面的標題部分使用了2個定位標記,並且想要捕獲它們上的點擊事件,因此我可以打開面板。如果我使用按鈕而不是錨標籤,我可以很容易地用它們的id來抓住它們,例如;在jQuery手機上選擇定位標記
$(document).on('click', function(evt){
var target = evt.target;
var targetId = target.getAttribute('id');
if(targetId === 'openRightPanel'){
$('.right-panel').panel('open');
evt.stopImmediatePropagation();
evt.preventDefault();
}
}
但是,如果我使用錨標籤,我不能得到像這樣的點擊事件;
if(targetId === 'openRightPanel'){
$('.right-panel').panel('open');
evt.stopImmediatePropagation();
evt.preventDefault();
}
即使我的錨標記具有openRightPanel的ID。
我意識到jQuery mobile正在我的html中創建一些新的div,所以我開始使用這段代碼來捕獲這個點擊事件;
while (target !== null) {
if(target['id'] === 'openLeftPanel'){
$('.left-panel').panel('open');
isPreventOn = true;
}
else if(target['id'] === 'openRightPanel'){
$('.right-panel').panel('open');
isPreventOn = true;
}
target = target.parentNode;
}
這一項工作正常,但在Android 4.1創造了一些問題,並具有while循環正好趕上click事件似乎沒有我的權利。
所以我的問題是我怎麼能捕捉到這些錨定標記的點擊事件jQuery手機沒有循環或有沒有不同的方式來獲得該事件?這些是我想要獲得的錨定標記;
<div data-role="header">
<h1>title</h1>
<a id="openLeftPanel">open</a>
<a id="openRightPanel">open</a>
</div><!-- /header -->
錨被轉換成按鈕。您可以將偵聽器附加到兩者。這些錨是動態創建的還是靜態的? http://fiddle.jshell.net/PYHRJ/1/ – Omar