背景
我正在jQuery Mobile(JQM)中开发一个电子商务网站。我创建了一个产品页面,该页面使用JQM的Split Button Listview属性列出特定类别中的所有产品。
以下是我的工作代码:
<ul data-role="listview" data-inset="true" data-split-icon="plus" data-split-theme="d" data-theme="d" data-dividertheme="d">
<li data-role="list-divider" class="listdivider">SPI_Level3Entry</li>
<!-- SPI_HTML_Product_Entry1 -->
<li class="prod"><a href="SPI_ProdFullLink" onmouseover="window.status=''; return true;" rel="SPI_ProdThumbnail"><img src="SPI_ProdThumbnail" alt="SPI_ProdEntryDesc"/>
<!-- SPI_HTML_Product_LinkItemNum -->
<h2>SPI_ProdEntryID</h2>
<!-- SPI_HTML_Product_LinkItemNum -->
<!-- SPI_HTML_Product_Entry_Others -->
<p class="space"><b>
<!-- SPI_HTML_Product_ColHdr_PNs -->
SPI_ColHdrOther</b>
<!-- SPI_HTML_Product_ColHdr_PNs -->
: SPI_ProdEntryOther</p>
<!-- SPI_HTML_Product_Entry_Others -->
<p class="description"><b>Description</b>: SPI_ProdEntryDesc</p>
<!-- SPI_HTML_AllowOrderPlacement -->
<!-- SPI_HTML_AllowViewPriceAvail -->
<p class="space"><b>Qty Avail</b>: SPI_ProdQtyAvail</p>
<p class="space"><b>Unit Price</b>: <span class="price">SPI_ProdEntryPrice</span></p>
<!-- SPI_HTML_AllowViewPriceAvail -->
<input name="SPI_CartProductIDFieldName" type="hidden" value="SPI_ProductID" />
<input name="SPI_CartMfgProdIDFieldName" type="hidden" value="SPI_MfgProdID" />
<input name="SPI_CartProductDescFieldName" type="hidden" value="SPI_ProductDesc" />
<input type="number" name="SPI_CartOrdQtyFieldName" class="nolink" value="0" />
</a>
<a href="#" onClick="javascript:if (document.AddItem.SPI_CartOrdQtyFieldName.value==0) {document.AddItem.SPI_CartOrdQtyFieldName.value='1'};document.AddItem.submit();">Add</a>
<!-- SPI_HTML_AllowOrderPlacement -->
</li>
</ul>
问题
如您所见,每个li的内容都包含在“a href”属性中。在“a href”属性中,我有一个文本输入。问题是,当我单击文本输入以输入值时,会产生默认的“a href”行为。
问题
如何防止JQM中文本输入的默认“a href”行为,同时保留其余li内容的默认“a href”行为?
答案 0 :(得分:4)
您可以通过在事件对象上调用preventDefault()来阻止默认行为。
示例强>:
$('a').click(function(event){
event.preventDefault();
//also possible
event.stopImmediatePropagation();
})