在jquery中使用#urls
我在这里让自己感到困惑。基本上我使用 jQuery 将 div 转换为链接;
$('.product').click(function() {
window.open('product.php','jav');
});
这工作正常,但我使用的是 .php/MySQL 数据库,并且我希望能够将产品 ID 传递到 url 中,以便它转到 /product.php#$id
。通常,我只在 php 代码中使用 标签,但使用 Javascript 方法时,我无法将 PHP 变量插入 URL。
可能没有多大意义,但这是漫长的一天,如果有点难以理解我在这里要求的内容,我很乐意回答任何问题。
I've managed to confuse myself here. Basically I am using jQuery to turn a div into a link with;
$('.product').click(function() {
window.open('product.php','jav');
});
This works fine but I am using a .php/MySQL database and I want to be able to pass the product ID into the url so it goes to /product.php#$id
. Normally I'd just use <a>
tags in my php code but using the Javascript method I can't plug in the PHP variable to the URL.
Probably not making a lot of sense but it's been a long day, happy to answer any questions if it's a little difficult to make out what I'm asking for here.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
将产品 ID 作为
div
标记的一部分发出。这里我展示了两个选项:data-
属性和div
的内容。我更喜欢 data- 属性,因为您的内容可能已经定义了。您可以在 jsfiddle 上查看以下所有内容。现在在构建 URL 时访问它:
Emit the product ID as part of the
div
's markup. Here I've shown two options: adata-
attribute and the contents of thediv
. I'd prefer the data- attribute since your content is probably already defined. You can see all that is below on jsfiddle.Now access it when building your URL:
如果将 id 放入自定义属性中,则可以在单击事件中提取它:
例如:
然后在单击事件处理程序中,您可以使用 jQuery 的 attr 方法来获取值。
If you put the id in a custom attribute you can pull it on the click event:
For example:
then later in your click event handler you can use jQuery's attr method to get the value.
好吧,您需要在标记中的某个位置包含 id。如果
.product
是,您可以为每个产品分配完整的 url,例如:
因此,在您的 jquery 代码中:(
未测试)
添加:
Missing
return false;
如果用户禁用了 js,这也将起作用,因为它将导航到正确的页面而不是作为弹出窗口打开。
Well, you need to have the id somewhere in your markup. If
.product
are<a>
, you can assign to each one the complete url, like:<a href="product.php?id=333">
So, in your jquery code:
(Not tested)
ADDED:
Missing
return false;
This will also works if user has js disabled, as it will navigate to the right page instead of opening it as popup.