【问题标题】:How to get jquery working for all items in the loop如何让 jquery 为循环中的所有项目工作
【发布时间】:2013-01-03 11:20:51
【问题描述】:

我在 wordpress 中使用以下代码,同时也在使用灯箱表单插件。

<?php query_posts('showposts=9&post_type=packages') ?>
  <?php while (have_posts()) :the_post(); ?>
    <?php echo the_post_thumbnail(); ?>
     ...
      ...
    <span class="package-book">
    <div id="text"><?php the_title(); ?></div>
     <script type="text/javascript">

     var $ = jQuery.noConflict();

     $(document).ready(function() {
        $(".package-book a").click(function() {
            var $temp = $('#text').html();
            $('#book-title').val($temp);
        });
     });

     </script> 

       <?php echo do_shortcode("[formlightbox text='Book Now' title= 'welcome'][contact-form-7 id='383' title='Booking Form'][/formlightbox]"); ?>
         or consider this <a title="welcome" class="fl_box-1" href="#">Book Now</a>
      </span>  
       <?php endwhile; ?>
       <input type="text" size="40" class="wpcf7-form-control wpcf7-text" id="book-title" value="" name="PackageTitle">

I am using contact us 7 plugin 并创建了一个嵌入到灯箱表单中的表单预订表单。

其实when book now anchor tag is clicked现在的书form gets popped up on the screen.

I want that input type text with id book-title 应该是filled with current package title&lt;?php the_title(); ?&gt;.

The above jquery works for first package only.请帮助我,以便它适用于所有软件包。

【问题讨论】:

  • ID 在每个页面上必须是唯一的(事实上,作为 iframe 的文档是基于上下文的例外)
  • 我没听懂。请解释一下
  • 您在 php 循环中回显
    ,这并不像我之前所说的那样好,ID 必须是唯一的。但是您的输入“#book-title”似乎不在循环中,所以这里可能不是您的问题。当然,不好的是在 PHP while 循环中设置脚本标记。把它放在循环之外,看看发生了什么。
  • 是的,你说得对,id 为“#book-title”的输入不在循环中。你能建议一些替代方法吗?

标签: jquery jquery-ui jquery-plugins wordpress


【解决方案1】:

您在这里缺少$

jq(".package-book a").click(function(){

改为这样写:

$(".package-book a").click(function(){

【讨论】:

  • 你在任何地方加载 jQuery 吗?
  • 不,我将这个 jquery 加载到同一个文件(模板文件)中
【解决方案2】:

您可以尝试一些方法来使其正常工作。

  1. 确保您的脚本已被拉入页面,一种检查方法是使用 Chrome 调试器中的“源”选项卡并在 html 头部部分中搜索其他文件

    李>
  2. 确保在包含 jQuery 之后包含 datatale 脚本,因为它肯定依赖于它。

  3. 检查 jQuery 是否正确包含,并且只包含一次。

  4. 注意 jQuery 冲突。还有一些其他库覆盖了 $,因此您的代码无法正常工作,因为 $ 不再是 jQuery 的别名。您可以使用jQuery.noConflict() 来避免与页面上使用相同变量 $ 的其他库发生冲突。

  5. 检查是否所有需要的class和ids区域都附加了。

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签