Jquery检测li状态更改

时间:2018-03-26 10:29:40

标签: jquery html hidden

我正在使用重力形式来显示一些选项并隐藏其他选项。我的html结构如下

def accounts_get_balance(address):
    payload = {'address': address}
    response = requests.get(constants.ACCOUNTS_GET_BALANCE,
                        params=payload,
                        timeout=constants.TIMEOUT
)

标识为<li id="field_7_186" class="gfield gfield_price gfield_price_7_176 gfield_option_7_176 field_sublabel_below field_description_below gfield_visibility_visible"><label class="gfield_label">Additional Services</label><div class="ginput_container ginput_container_checkbox"><ul class="gfield_checkbox" id="input_7_186"><li class="gchoice_7_186_1"> <input name="input_186.1" type="checkbox" onclick="gf_apply_rules(7,[99]);" onkeypress="gf_apply_rules(7,[99]);" value="Remote KVM|75" id="choice_7_186_1" tabindex="20"> <label for="choice_7_186_1" id="label_7_186_1" price=" +CHF 75.00">Remote KVM<span class="ginput_price"> +CHF 75.00</span></label> </li></ul></div></li> <li id="field_7_99" class="gfield gfield_html gfield_html_formatted gfield_no_follows_desc field_sublabel_below field_description_below gfield_visibility_visible" style="display: none;"><p class="monthly"> * Remote KVM Incurs setup fee of CHF 75 and no monthly fee</p></li> 的第二个li处于field_7_99状态。每当用户点击ID为display:none的第一个复选框时,它就会显示第二个field_7_186。我需要一个JQuery代码来检测&#34;实时&#34;如果显示第二个li。我有以下代码,但它似乎没有效果。

li

有人能帮助我吗?感谢。

1 个答案:

答案 0 :(得分:0)

我假设您正在对您无法控制的页面执行此操作,事实上,因为很明显,如果您控制页面,只需将您需要的任何逻辑放在{ {1}}通过gf_apply_rules属性调用的处理程序。

只需勾选复选框,等待勾选,然后查看onclick的状态:

li

为什么$("#field_7_186 input[type=checkbox]").on("click", function() { setTimeout(function() { if ($("#field_7_99").is(":visible")) { // It's visible... } }, 0); }); ?因为不同的浏览器将处理现代事件处理程序,并且setTimeout属性样式处理程序在时间方面有所不同。您需要确保代码在属性样式处理程序之后运行