簡體   English   中英

使用JQuery觸發元素的onclick方法[ASP.NET]

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM