繁体   English   中英

jQuery添加输入字段并处理选择更改事件

[英]jQuery add input fields and handle select change event

我想克隆一行输入1或选择和1选择字段。 取决于第一个选择的值,它应该将第二个更改为输入或选择字段。 它适用于父级,但不适用于克隆。

    jQuery("body").delegate("p", "click", function(){
        var $tr    = jQuery(this).closest('.tr_clone');
        var $clone = $tr.clone();
        $tr.after($clone);
    });
    jQuery('.art_der_fahrt').hide();
    jQuery('.wert_input').show();
    jQuery(".fahrtenbuch_aenderungen").change(function() {
                if(jQuery(this).val() == '52') {
                    jQuery(this).parent('td').next('td').children(".art_der_fahrt").show();
                    jQuery(this).parent('td').next('td').children('.wert_input').hide();
                }
                else {
                    jQuery(this).parent('td').next('td').children(".art_der_fahrt").hide();
                    jQuery(this).parent('td').next('td').children('.wert_input').show();
                }

            });

<td>
    <select class="fahrtenbuch_aenderungen" name="fahrtenbuch_aenderungen">
      <option></option>
      <option value="24">Fahrtziel</option>
      <option value="23">Besuchte Personen / Firmen / Objekte</option>
      <option value="3">Fahrer</option>
      <option value="52">Art der Fahrt</option>
      <option value="14">Fahrzeugstandort</option>
      <option value="111">Fahrtzweck</option>
    </select>
</td>
<td>
    <input value="" class="wert_input" name="wert" type="text">
    <span class="art_der_fahrt">
        <select tabindex="111" class="test" name="select">
            <option></option>
            <option value="Dienstfahrt">Dienstfahrt</option>
            <option selected="selected" value="Wohnung">Wohnung</option>
            <option value="Bereitschaft">Bereitschaft</option>
            <option value="3">Fahrer</option>
            <option value="52">Privatfahrt</option>
            <option value="Familienheimfahrt">Familienheimfahrt</option>
        </select>
    </span>

</td>
<td colspan="2">
<p>Click me!</p>
</td>

使用.on

jQuery(document).on("click", "p", function(){

jQuery(".fahrtenbuch_aenderungen").on('change',(function() {

因为.on已经取代了.live.bind以及.delegate 和。对也比其他快.. http://jsperf.com/bind-vs-live-vs-delegate-vs-on/5

你绑定了改变监听器 -

jQuery(".fahrtenbuch_aenderungen").change(function() {

- 在只有一个select元素的时候。 只有那个元素才有听众。 你也需要在这里使用代表:

jQuery("body").delegate(".fahrtenbuch_aenderungen", "change", function() {

在这里使用.delegate ,假设您在自己的帖子中使用它,假设使用旧版本的jQuery。 正如其他人所指出的那样,你应该更喜欢.on是否可用。

演示

使用以下

$("td > p").on("click", function(){
    // your code here
});

“on”可以将事件绑定到动态生成的dom

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM