JQuery追加前置包装父级的本地化方法

时间:2013-07-15 作者:David Garcia

因此,我将WordPress中的一些选项序列化,然后将它们本地化,以便在jQuery脚本中使用,但我接下来要做的事情不起作用。

jQuery(\'.advert\')+ lu_ban_object.method +(\'<div>Hello World</div>\')
所以在我的db中,我已经序列化了一些值;以下是被本地化为用作用户选择的方法的数据

s: 6:“方法”;s: 5:“.包装”;}

本质上,它应该做的是;

jQuery(\'.advert\').wrap(\'<div>Hello World</div>\')
用户还可以附加、前置、换行等,但它不起作用,方法正在本地化和序列化,因此应该可以工作,但它不起作用。我也尝试过以下方法:;

jQuery(\'.advert\')lu_ban_object.method(\'<div>Hello World</div>\')
jQuery(\'.advert\')jQuery(lu_ban_object.method)(\'<div>Hello World</div>\')
只是不起作用。。。。任何人都知道如何解决这个问题。还是我做错了?我只是在设置页面中有一个列表,每个列表都有一个不同方法的值,例如;

<select name="lu_ban_data[method]" id="lu_ban_data" />
        <option value=".append">Append</option>
        <option value=".prepend">Prepend</option>
        <option value=".wrap">Wrap</option>
        <option value=".parent().parent().wrap">Parent</option>

update: var dump

array (size=4)
  \'title\' => string \'My custom title\' (length=15)
  \'msg\' => string \'My message\' (length=10)
  \'image\' => string \'http://i.imgur.com/3tPjx4l.png\' (length=30)
  \'method\' => string \'.prepend\' (length=8)
我尝试了支架解决方案,但仍然没有结果,jQuery(\'.advert\')[lu_ban_object.method]("<div>Hello World</div>") 我收到以下错误:Uncaught TypeError: Object [object Object] has no method \'.prepend\' 所以我添加了加号,消息消失了,但div仍然没有添加到页面中+[lu_ban_object.method]+

下面是我在标题中打印的本地化数据

<script type=\'text/javascript\'>
/* <![CDATA[ */
var lu_ban_object = {"title":"My custom title","msg":"My message","image":"http:\\/\\/i.imgur.com\\/3tPjx4l.png","method":".prepend"};
/* ]]> */
</script>

1 个回复
最合适的回答,由SO网友:adeneo 整理而成

如果lu_ban_object.method 等于字符串wrap, 您希望使用该字符串调用jQuery的wrap() 方法,则使用括号表示法:

jQuery(function($) {
    $(\'.advert\')[lu_ban_object.method](\'<div>Hello World</div>\');
});

结束

相关推荐

通过表单或链接(jQuery,而不是URL)更改循环顺序

我想通过链接或表单输入更改循环顺序,但无法通过URL加载,因为我需要orderby=meta值,而这无法通过URL args(根据codex)完成,只能这样:<?php $argsvs = array( \'post_type\' => \'evento\', \'posts_per_page\' => -1, \'meta_key\' =&