使用单击修改渲染页面

时间:2012-12-12 08:07:18

标签: jquery confluence

我在Confluence中遇到某个jquery有问题。 我有这段代码:

## @param pmname:title=Name(select)|required=true|type=string

<script> 
AJS.toInit(function() {

$(".sectionMacroWithBorder").not(":contains('$parampmname')").addClass("hidden");

});

</script>

哪种方法非常完美 - 隐藏所有不包含给定文本的部分。 但是,当我尝试创建一个按钮以激活相同的代码时单击

 ## @param pmname:title=Name(select)|required=true|type=string

 <script>
 AJS.toInit(function() {

 $('.wiki-content').append('<button id="addnew" type="button">$parampmname</button> ');

 $('addnew').on('click', 'button', function() {

 $(".sectionMacroWithBorder").not(":contains('$parampmname')").addClass("hidden");
  }); 

 });

 </script>

jquery在页面底部创建了按钮,但是在点击时没有任何事情发生,与第一个示例中给出的变量相同。我还为.addnew

尝试了#addnew.on .

这是一个小提琴(感谢Mark Schultheiss!),其中有类似的按钮工作:http://jsfiddle.net/Cecfu/1/

我做错了什么或是Confluence jquery pecularity?

2 个答案:

答案 0 :(得分:0)

这个:

$('addnew').on('click', 'button', function() { ...

应该是:

$('#addnew').on('click', function() { ....

因为buttonid="addnew"且不是#addnew的孩子

如果您愿意,也可以最终做到:

$('.wiki-content').on('click', '#addnew', function() { ...

...使用click

id="addnew"事件委托给现在或将来的子元素

答案 1 :(得分:0)

为点击监听器尝试#addnew

AJS.toInit(function() {

$('.wiki-content').append('<button id="addnew" type="button">$parampmname</button> ');

$('#addnew').on('click', 'button', function() {

$(".sectionMacroWithBorder").not(":contains('$parampmname')").addClass("hidden");
 }); 

});