使用jQuery时,Css类已添加但未呈现

时间:2009-09-24 16:50:07

标签: jquery css

我有一个特殊的问题。我可以将一个css类添加到DIV中,但不会渲染样式。

更新

我终于找到了问题。

使用我最初使用的代码,我将类添加到'myDialog'div中。我必须做的是将类添加到$ .dialog创建的父div中(以包装我的对话框div)。

完成此操作后,我的对话框将被完全呈现。 这是我使用的代码:

  //Instantiate dialog      
  jQuery("#dialog").dialog({ modal:true, autoOpen:false });

  function processRegistration(instanceID, formData)
  {
    jQuery.post("wp-content/themes/storelocator/include/jquery_bll.php", { instance: 'processRegistration', formData : formData, instanceID : instanceID },
      function(feedback)
      {
        jQuery('#dialog').text(feedback.message);
        jQuery('#dialog').parent().addClass(feedback.type);
        jQuery('#dialog').dialog('open');
      },"json");
  }

2 个答案:

答案 0 :(得分:3)

在做这样的动态风格时,要注意的事情总是让我感到困惑:

1)确保您的CSS文件包含在jQuery和/或您可能使用的任何主题文件之后。他们可以推翻你的风格,最后一个文件是“赢得”风格冲突。

2)确保您的风格实际上有效且包含在内。将其应用于静态元素并确保它看起来如您所期望的。我注意到你在css中显示你在#dialog之前有一个“'”而在.ui-dialog样式上没有关闭“}”,这两个都可能会破坏整个文件。我猜这些只是一个复制粘贴,但你应该仔细检查以防万一。我有很多例子,我认为jQuery会破坏我的风格,只是为了发现风格从一开始就被破坏了,或者我把它放在一个甚至没有被包含的文件中。

哦!嘿!我刚注意到的另一件事。你正在覆盖你的失败风格!尝试将.ui-dialog样式移动到css中的.fail样式上方,看看是否得到不同的结果。您的.ui对话框样式可能会将背景重置为透明。请记住:在CSS中,最后定义的样式总是胜出!

答案 1 :(得分:0)

准确地说,Firebug CSS列表中的删除线并不意味着样式被“取消”;这意味着他们已被其他地方的另一种风格所取代。无论是什么,也应该出现在列表中。这听起来像是按照您的期望应用了一个类,但没有您期望的效果,因为在CSS的不同位置或明确应用于元素的样式中应用了一些更具体的样式。