【问题标题】:Create dynamic <div> and use edit jQuery创建动态 <div> 并使用编辑 jQuery
【发布时间】:2012-04-19 03:52:09
【问题描述】:

我这里有问题。此代码创建一个动态 div:

for (var i = 0; i < number; i++) {
            $('#konf-select-mech').append('<div class="ksm-box"><table><tr><td width="111" class="ksmbt-r1"><span>Otvor '+ pocitadlo++ +':</span></td><td><select class="select-menu1"><option>Vyber mechanizmus</option><option value="Vypinac">Vypínač</option><option value="Zasuvka">Zásuvka</option></select></td><td width="106"><img src="./images/konfsipka.png" alt="" /></td><td><select class="select-menu2"></select></td></tr></table></div>');
        }

我可以使用 javascript 编辑它:

$('.select-menu1').live('click', function() {
        var selectx = $(this).val();
        if(selectx == "Vypínač") {
            $(this).parent().parent().find('.select-menu2 option').remove();
            $(this).parent().parent().find('.select-menu2').append('<option value="Jednopackovy">Jednopáčkový</option><option value="Krizovy">Krížový</option><option value="Dvojpackovy">Dvojpáčkový</option><option value="Tlacitko">Tlačítko</option><option value="Stmievac">Stmievač</option>');
        }
        else if (selectx == "Zásuvka") {
            $(this).parent().parent().find('.select-menu2 option').remove();
            $(this).parent().parent().find('.select-menu2').append('<option value="Zasuvka230V">Zásuvka 230V</option><option value="ZasuvkaTVRD">Zásuvka TV+RD</option><option value="ZasuvkaTVRDSAT">Zásuvka TV+RD+SAT</option><option value="DatZasuvJedFTP">Dátová zásuvka jednoduchá FTP cat6</option><option value="DatZasuvDvojFTP">Dátová zásuvka dvojitá FTP cat6</option><option value="TelZasuvJedRJ11">Telefónna zásuvka jednoduchá RJ11</option>');
        }
        else if (selectx == "Vyber mechanizmus") {
            return false;
        }
    });

但它没有按预期工作。不知道出了什么问题。有人可以帮帮我吗?

谢谢。

【问题讨论】:

  • 你能解释一下什么不能正常工作吗?我们无法读懂您的想法和解决方案。请提出正确的问题,以便我们为您提供帮助。
  • 你知道代码应该做什么吗?

标签: javascript jquery dynamic html append


【解决方案1】:

不要使用.live()。使用.on()。另外,将选择器更改为$('.select-menu1 option')

【讨论】:

    【解决方案2】:

    如果select-menu1&lt;select&gt; 元素,则应使用事件.change() 而不是.click(),如下所示:

    $('.select-menu1').change(function(
      // do something
    ));
    

     $('.select-menu1').live('change', function(
      // do something
    ));
    

    【讨论】:

    • 当 div 不生成静态 html 时,它可以工作。但是当它动态时它不是。我也试过“.change”和“.on”,但还是没有
    • @AdamMikó 动态生成的 html 应该使用 .live 函数来解析。尝试在您的事件中设置一些警报以确保它被触发。
    猜你喜欢
    • 2014-02-15
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多