javascript - jQuery.data() : set values from php

标签 javascript php jquery html mysql

我有一些图像是使用 MySQL 数据库中的数据创建的。数据库中的数据是标题和描述。在用户单击图像之前,这在网站上是不可见的。然后 Javascript 将它加载到其他地方,而不是我的图像附近的任何地方。

我的问题是访问这些数据。我用这种结构在 PHP 中创建我的元素:

<div class="image-container">
    <img src="<?php echo $url; ?>" alt="<?php echo $title; ?>" />
    <div class="title" style="display: none;"><?php echo $title; ?></div>
    <div class="description" style="display: none;"><?php echo $description; ?></div>
</div>

当点击图片时,我调用这样的数据:

$('.image-container').click(handle_image_click);

function handle_image_click(e) {
    var title = jQuery(e.currentTarget).find('.title').html();
    var description = jQuery(e.currentTarget).find('.description').html();
    (...)
}

虽然这可行,但我认为这不是一个非常“干净”的解决方案。它要求我必须隐藏 div 元素并在其中“存储”数据。我知道您可以使用以下代码将数据存储到 jQuery 中的元素:

$('#myElement').data('someName', 'someValue');

现在我的问题是:有没有办法不必在 php 中创建 div 元素(如代码块 1 中所示),而是直接将描述和标题添加到元素的“数据”属性,准备就绪由 javascript/jQuery 获取?

最佳答案

您可以使用 data-* html5 attribute存储数据

<div class="image-container" data-title="<?php echo $title; ?>" data-description="<?php echo $description; ?>">
    <img src="<?php echo $url; ?>" alt="<?php echo $title; ?>" />
</div>

然后在处理程序中

$('.image-container').click(handle_image_click);

function handle_image_click(e) {
    var title = jQuery(this).data('title');
    var description = jQuery(this).data('description');
    (...)
}

关于javascript - jQuery.data() : set values from php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18533295/

相关文章:

javascript - 如何让 Javascript 难以理解

javascript - html 和 css 中的下拉 Div(可能是 javascript?)

javascript - 将 JQuery Odd 选择器用于单独的 ul 标签

javascript - tinymce 未定义

javascript - 当Api返回数据时,数据无法以 Angular 方式设置在Object的数据类型中

javascript - 您如何设计单个 JQuery 自动完成小部件的样式?

php - 如何设置下拉列表项的样式

javascript - 如何像在 Wysiwyg 中一样在 Quill 中添加 "show html"按钮?

javascript - ng-click + ng-repeat 并尝试更改面板样式

php - 从谷歌搜索中删除并保护/管理/