0
我動態加載html元素.. 並使用livequery()插件來處理點擊事件.. 但只有第一個元素可以被點擊。jquery livequery問題
這裏是我最初的DOM:
<div id="styleList">
<h4 class="subPaneTitle blurred">List of themes</h4>
<ul>
<li class="listHeader"><span class="themeID">Theme ID</span><span class="themeName">Theme Name</span>
<span class="themeAction">Action</span>
</li>
</ul>
<p class="createNewStyle clearfix"><a id="createNewStyle" class="btnStyle1 blurred ui-corner-all">Create new theme</a></p>
</div>
這裏是我的代碼從XML動態加載的元素:
$.get("http://localhost/ShopNGo_Blitz_revised_w_YAML/site_styles_list.xml",loadAllThemes);
function loadAllThemes(data){
$(data).find("style").each(function(){
var thisStyle = $(this);
var styleID = thisStyle.attr('id');
var styleName = thisStyle.attr('name');
var styleStatus = "";
if(thisStyle.attr('status') == "used"){
styleStatus = '<span class="statusIndicator">Current theme</span>';
}
$("#styleList ul").append('<li><span class="themeID">'+ styleID + '</span><span class="themeName">' + styleName + '</span><span class="themeAction"><a id="themePreview">Preview</a></span><span class="themeAction"><a id="themeEdit">Edit</a></span><span class="themeAction"><a id="themeDelete">Delete</a></span><span class="themeAction"><a id="themeUse">Use</a></span>' + styleStatus + '</li>');
});
}
這裏是我的 '編輯' click事件代碼:
$("div#styleList").find("ul").find("li").find("a#themeEdit").livequery("click",function(){ //this gets only the first element.
var themeName = $(this).parent().prev().prev(".themeName").text();
$("#siteStyleContent").tabs("select","#styleEditTabs");
$("div#styleEditTabs").children("#themeName").text(themeName);
});
謝謝..我沒有意識到這一點。 – 2009-04-11 03:08:59
.live直到1.4時才支持所有事件 – 2009-05-23 08:12:14
他正在使用livequery進行點擊,這是受支持的... – 2009-05-23 08:23:38