JQTransform - 从样式中排除元素?

时间:2010-09-16 14:14:03

标签: jquery jqtransform

我正在使用JQTransform来设置所有表单元素的样式。是否可以禁用特定元素的样式,让所有其他元素由JQTransform设置样式?

8 个答案:

答案 0 :(得分:9)

我已将if( $input.hasClass('ignore') == true ) { return; }添加到插件的第99行,以忽略class = ignore的任何文本字段。也许这会对你有帮助。

答案 1 :(得分:4)

使用班级jqtransformdone。它内置于插件中。

答案 2 :(得分:3)

我确认,在发布问题的成员的回复中,mattbee的解决方案对我有用。按照说明,我将代码粘贴在第99行,位于以下行之上:

if($input.hasClass('jqtranformdone') || !$input.is('input')) {return;}

对于任何不太明显的人,请粘贴代码 ABOVE 第99行,而不是更换第99行,如下所示:

/*Custom code: Regarding class for elements exceptional to transformation.*/  
/*Custom code: http://stackoverflow.com/questions/3727517/jqtransform-exclude-an-element-from-styling*/
if( $input.hasClass('ignore') == true ) { return; } 
if($input.hasClass('jqtranformdone') || !$input.is('input')) {return;}

我没有看到对mattbee的答案发表评论的选项,所以我以答案的形式提交了它。

编辑:上面的代码将提示jqTransform跳过/排除/忽略/避免输入元素。在我的情况下,我用它来排除type =“text”和type =“image”。但是,将.ignore类应用于我的textarea元素确实排除了不希望的转换,但由于某种原因还排除了我的select元素的转换。请注意,对文本区域的jquery.jqtransfrom.js的编辑是在原始未编辑文档的第201行开始的textarea函数中进行的,而不是从上面代码块中第95行开始的文本字段的函数。

以下是我尝试的示例(放置 ABOVE 第207行):

if( $textarea.hasClass('ignore') == true ) { return; }

重申一下,它有效,但也排除了我选择框的转换,这不是我的意图。

搜索解决方案后,我发现了以下博文: http://www.deliciouscoding.com/post.cfm?entry=use-jqtransform-and-tinymce-together

基本上,jqTransform创建的用于替换textarea元素的表被textarea替换或更简单地放置,它撤消了转换:

<!--Undo textarea transformation.-->
<!--Source: http://www.deliciouscoding.com/post.cfm?entry=use-jqtransform-and-tinymce-together.-->
<script language="javascript">
jQuery(function(){
jQuery("form.transform table").replaceWith('<textarea></textarea>');
});
</script>

对于那些刚接触jQuery的人,上面的代码将放在文档的头部(即<head></head>之间)。

答案 3 :(得分:3)

我创建了新的库 - csTransPie - 基于jqtransform - jqtransform是一个很棒的库,但它确实有很多问题,今天css3解决了很多这些问题,我喜欢控件是正常控件和看的想法每个浏览器都一样

https://github.com/pkoretic/csTransPie

这是一项正在进行中的工作,但即使现在它比jqtransform更好(超过一半的代码被重写,许多错误解决了,干净的css ......),你必须承认它......

只需在你想要的元素上使用.transpie类!

答案 4 :(得分:1)

或者您只需在输入中添加 jqtranformdone 类:)

答案 5 :(得分:0)

这里我的版本(版本1.1 06.08.09)跳过输入: 在第497行的jquery.jqtransform.js中编辑它

  $('input:submit:not(.hidden), input:reset:not(.hidden), input[type="button"]:not(.hidden)', this).jqTransInputButton();
  $('input:text:not(.hidden), input:password:not(.hidden), input[type="email"]:not(.hidden)', this).jqTransInputText();
  $('input:checkbox:not(.hidden)', this).jqTransCheckBox();
  $('input:radio:not(.hidden)', this).jqTransRadio();
  $('textarea:not(.hidden)', this).jqTransTextarea();
  $('select:not(.hidden)', this).jqTransSelect()

答案 6 :(得分:0)

您可以简单地将“jqtransformdone”类添加到元素,您想要跳过样式。 希望,它会帮助别人。

答案 7 :(得分:-1)

我知道这是一个非常古老的主题,但我不得不说如果你将额外的类添加到普通表单中它会更合适,并且它不会被转换。 对于输入文本和textarea,添加'jqtranformdone'类,它将返回而不进行转换。 对于复选框,单选按钮和选择使用'jqTransformHidden'类。