JQuery:Selector意外的选择器更改

时间:2012-10-02 09:29:41

标签: jquery ruby-on-rails dynamic

您好我有一个非常奇怪的问题我正在编写一个Rails应用程序,我正在尝试这样做:

if ($('.btnModal').exists()) {
  $('.btnModal').bind('click', function() {
    var $modal, fadeTime, modalCustomClass;

    $modal = $('#myModal');
    fadeTime = 1000;
    modalCustomClass = $(this).data('modal_content_selector').substring(1);
    $modal.removeClass(modalCustomClass).addClass(modalCustomClass);

    alert(modalCustomClass);
    alert($($(this).data('modal_content_selector')).html());
    alert($(this).data('modal_content_selector'));

    return $('.modal-body').html($($(this).data('modal_content_selector')).html());
  });
}

这一行$modal.removeClass(modalCustomClass).addClass(modalCustomClass)导致了这种情况:

第二个警告显示selctor .modal-body的html但没有这一行的情况是正确的,提到的选择器显示页面中的表单的html。我已经阅读了关于live和delagate方法的内容,但我不知道如何在这里使用它们

编辑: 它是: 这是目录的显示:

- provide(:title, "#{ current_catalog.name }")
= render 'shared/desktop'
= render 'shared/file_upload'

这是模态偏:

      .modal.hide#myModal{ overflow: 'hidden', tabindex: '-1', role: 'dialog', 'aria-        hidden' => 'true' }
        .modal-body
           TEST

带有特定按钮的侧栏的一部分:

          %li
            %a.btn.btnModal{ href: "#myModal", role: 'button', data: { toggle: 'modal',   'modal_content_selector' => '.file_upload' }, remote: 'true'}
              %i.icon-file
              New

另一个编辑:

以下是整个呈现页面的html:

Whole page

1 个答案:

答案 0 :(得分:0)

我刚刚得到了启发,并意识到我这样做了removeClass.addClass我在页面上有两个元素具有相同的类,这就是为什么第二个警告显示第一个我需要的第一个警告是在最后一个位置这个页面是这样的:alert($($(this).data(' modal_content_selector')+':last')。html());应该做的诀窍:D