[英]Trigger element's onclick method with JQuery [ASP.NET]
我有一個從CheckBoxList繼承的ASP.NET服務器控件,該控件通過UL和LI呈現控件。 控件設置為AutoPostBack。
標記:
<div id="foo">
<ul>
<li>
<input id="..."
type="checkbox"
name="ctl00$MainContent$FooList$0"
onclick="javascript:setTimeout(
'__doPostBack(\'ctl00$MainContent$FooList$0\',\'\')', 0)" />
<label ...>...</label>
</li>
...
</ul>
</div>
我想觸發單擊父LI時在CheckBox上呈現的JavaScript。 這是我到目前為止的內容:
$("#foo li").click(function() {
$(this).find("input:eq(0)").trigger("click");
});
這會在FF 3.x中觸發回發,但不會觸發背后代碼中的事件處理程序。 在IE 7中,出現腳本錯誤,瀏覽器只是在那里有點掛起,然后重新加載頁面。
我應該怎么做?
我嘗試一下:
$("#foo li").click(function() {
$(this).find("input:eq(0)").triggerHandler("click");
});
子級觸發器會冒泡到父級,在這種情況下會導致循環,因為父級單擊再次觸發了子級單擊。 Firefox有時會識別並阻止這種情況,但是結果是您的復選框已選中,起泡,未選中,以此類推,例如,回發不會觸發,因為檢查狀態確實沒有改變。
.triggerHandler()
但是不會冒泡,並且可能會解決您的問題(除非發生另一個腳本錯誤!)。 通常,在觸發子代上的處理程序時使用此規則,尤其是在子代上觸發會冒泡的同一事件時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.