我不知道這是一個jQuery JavaScript或只是一個怪癖的瀏覽器,但考慮下面的代碼:HREF被修改超出我的控制......?
for(rowIdx=0;rowIdx<theResultSet.rows.length;rowIdx++) {
thisLine = $("#TestTemplateLI").clone().attr({'id':'test_'+rowIdx}).appendTo("#test_exerciseListUL");
thisLine.find('[href*="#pageExercise_EXERCISENUMBER"]').each(function(i) {this.href = this.href.replace('EXERCISENUMBER', rowIdx)});
}
上面的代碼的目的是克隆一個列表項(<LI>
,下面嵌)HTML片段,修改它以尋址頁面上其他位置的錨點,然後將其插入到無序列表(<UL>
)中。所有這些工作使用jquery的奇蹟。問題是,一旦它被修改,錨點似乎不起作用。此外,在我編程HREF程序後,它返回一個完整的 URL,而不僅僅是一個錨點引用。例如:
<UL id='testTemplate' style="display:none">
<LI class='arrow' id='testTemplateLI'>
<a href='#pageExercise_EXERCISENUMBER'> <!-- THIS is the beast in question -->
<DIV class='LABELCLASS test_labelContainer'>
<TABLE height=100% width=100%>
<TR valign='center'><TD align='center'>EXERCISELABEL</TD></TR>
</TABLE>
</DIV>
<IMG id='test_checkmark_EXERCISENUMBER' class='test_checkMark_off' src="assets/checkmark.png" width=60px height=54px>
<DIV id='test_item_EXERCISENUMBER' class='test_exNameContainer'>
<TABLE height=100% width=100%>
<TR valign='center'><TD>EXERCISENAME</TD></TR>
</TABLE>
</DIV>
</a>
</LI>
</UL>
因此,有兩件事情正在發生。一,修改後的錨點根本就沒有工作,二,應該修改從「href ='#pageExercise_EXERCISENUMBER'」到「href ='#pageExercise_0'」(或任何當前行索引('rowIdx')它修改爲:「HREF =‘HTTP://www.mydomain.com/themainpage.php#pageExercise_0’」。
我需要一種方法來告訴JavaScript來停止的href「幫助」我爲。問題#1,我認爲這是關係到#2。提前
感謝,
斯科特。
綁定點擊函數,然後使用`window.location的.hash = $(this).attr('href');`看看它是如何工作的:) – Val 2011-02-18 13:17:32
你可能不得不使用live,因爲li是動態的,你也可能需要使用e.preventDefault() – Val 2011-02-18 13:18:06