小编EML*_*EML的帖子

Bootstrap 3:对带控件标签的单选按钮进行水平工作吗?

这浪费了我几天的时间.这是一个非常简单的表单,带有2个单选按钮和一个标签,在bootply上.这在预期的2.3.2上工作:左侧的"日期范围",右侧的按钮.在Bootstrap 3上,一切都在外面,它基本上是垂直的而不是水平的,文本是粗体,而且它只是一团糟.任何想法,没有重新做这个网格?

谢谢.

编辑

这是预期的布局,当在bootply上选择B2.3.2时:

在此输入图像描述

这是我选择任何B3 +时得到的:

在此输入图像描述

twitter-bootstrap twitter-bootstrap-3

19
推荐指数
2
解决办法
7万
查看次数

如何将SVG图像动态插入HTML?

我有一些代码通过Ajax从服务器检索脚本化的svg映像.我可以将图像文本返回到浏览器中,但我找不到将其插入实际显示它的DOM的方法.有人能帮忙吗?svg看起来像这样:

<svg id="chart" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" onload="init(evt)">
<script type="application/ecmascript">
<![CDATA[
...lots of code, changes on each Ajax request
//]]>
</script>
<script type="application/ecmascript" xlink:href="js-on-server-1.js"/>
<script type="application/ecmascript" xlink:href="js-on-server-2.js"/>
</svg>
Run Code Online (Sandbox Code Playgroud)

我尝试了各种各样的东西.如果我这样做:

// xmlhttp.onreadystatechange:
addImage(xmlhttp.responseXML, "somewhere");
...
function addImage(txt, dst_id) {
   var scr = document.createElement("div");

   if("textContent" in scr)
      scr.textContent = txt;  // everybody else
   else
      scr.text = txt;         // IE

   document.getElementById(dst_id).appendChild(scr);
}
Run Code Online (Sandbox Code Playgroud)

然后Opera和Chrome什么都不做,F/F抱怨"[object XMLDocument]".如果我将'responseXML'更改为'responseText',那么Opera/Chrome会在正确的位置正确显示整个svg文本(而不是图像),而F/F仍然会发出相同的警告.我也尝试将响应分配给innerHTML,但这没有任何作用.有任何想法吗?谢谢.

编辑

为了回应下面的Phrogz'z答案 - 我添加了两个简单的svg文件.第一个是'标准'简单svg,显示一个圆圈.第二个是脚本svg,显示一个矩形.您应该能够在任何浏览器中直接查看它们,IE8-除外.如果我编辑Phrogz'z代码以使用圆形文件(将'stirling4.svg'替换为此文件的名称),那么它可以工作,但如果我想要脚本矩形,则不会.在F/F,Opera,Chromium上测试,但无论如何都不能用于(我的)Chromium.

文件1,圆圈:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" />
</svg>
Run Code Online (Sandbox Code Playgroud)

文件2,矩形:

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" …
Run Code Online (Sandbox Code Playgroud)

html javascript ajax svg

13
推荐指数
1
解决办法
3万
查看次数

SVG:使用getComputedTextLength来包装文本

我正在尝试通过构建文本字符串来包装文本,并使用getComputedTextLength查找文本何时超出允许的宽度.但是,我找不到一种简单的方法来逐步构建可以使用的文本getComputedTextLength.

一般的想法是:

  str = svgDocument.createTextNode(myText[word]); // first word on new line
  word++;
  obj = text.cloneNode(true);                     // new text element for this line
  obj.appendChild(str);
  svgDocument.documentElement.appendChild(obj);   // reqd for getComputedTextLength?
  for( ; word < myText.length; word++) {
     next_width = obj.getComputedTextLength();    // get current line width
     if(next_width >= extent)
        break;
     str += " ";                                  // add next word to the line
     str += myText[word];
     ...
  }
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我如何使这个工作?大概是str被复制而不是引用的obj,但我也试图把obj.removeChild(str)obj.appendChild(str)在循环,但appendChild崩溃.我还尝试了各种组合,包括移动documentElement.appendChild,删除 …

javascript svg

12
推荐指数
1
解决办法
3万
查看次数

无法将事件传递给addEventListener:closure问题

这个让我疯狂......我有一个循环,它为SVG对象添加一个事件监听器.为了争论,对象是一个小圆圈,我必须为10个圆圈中的每一个添加mouseover和mouseout事件.

我的第一个问题是标准的闭包范围 - 因为所有的监听器都添加在同一个循环中,它们都看到了循环变量的相同无效值.我想,我可以解决这个问题,但第二个问题是我必须将"事件"传递给听众,而我找不到任何方法同时解决这两个问题.

我试过各种版本:

for(month = 0; month < nMonths; month++) {
   ...
   shape.addEventListener(
     "mouseover", 
     (function(event, index) { popup_on(event, foo, index); })(event, month),
     false);
   group.appendChild(shape);
}
Run Code Online (Sandbox Code Playgroud)

这个特殊的版本给了'事件没有定义'.popup_on是真正的处理程序,必须得到event和当前的值month.知道我应该怎么做吗?谢谢.

javascript events closures addeventlistener

12
推荐指数
1
解决办法
2万
查看次数

Woocommerce:如何将元数据添加到购物车项目?

我有一个数字产品,由数量和价格描述,但也需要3个数字来完全指定它(Unix日期等).问题:如何将这些数字放入购物车?

据我所知,有两种方法可以解决这个问题:

  1. 产品变化
  2. 产品自定义字段

看起来变体只能处理范围有限的离散值(即红色/黄色/绿色,S/M/L等),并且不能处理一般整数,如日期.留下自定义字段.我认为我说自定义字段是产品帖子页面上的普通元数据,所以我可以用get_post_meta和处理它们update_post_meta.

因此,如果我选择自定义字段,那么我会在订购时更新产品页面字段,然后我会在结帐时,WC_Order创建时读回字段,并将字段添加到新订单.但是,这不起作用.我无法更改产品页面上的元数据,因为该产品对所有客户都是全局的,并且此操作会干扰其他客户.换句话说,您无法在产品中存储特定于订单的信息,因此这些选项都不起作用.

那么,如何存储临时产品元数据并在订购和结账阶段之间传递(即在WC_Cart和之间WC_Order)?

一种选择是将其存储为用户元数据(或会话数据?),但必须有更好的方法 - 任何想法?

woocommerce

12
推荐指数
1
解决办法
1万
查看次数

将以像素为单位定义的SVG对象缩放为物理单位?

我有一个SVG元素,宽度和高度定义为"297mm"和"210mm",没有视图框.我这样做是因为我想在A4视口内工作,但我想以像素为单位创建元素.

在某些时候,我需要扩大以像素定义的对象,使其适合A4页面的一部分.例如,我可能有一个100像素宽的物体,我希望水平缩放到30毫米.

这可能吗?我想我需要一个带有新坐标系统的第二个容器,但我找不到任何方法来做到这一点.

编辑

似乎我(或SVG)误解了像素是什么.我意识到我可以将一条线的大小设置为100%,然后得到它的像素大小,getBBox以找到所需的缩放比例.我写了这个代码并在2个客户端上运行,一个使用1280x1024显示器(80dpi),另一个使用1680x1050 LCD(90dpi):

function getDotsPerInch() {
   var hgroup, vgroup, hdpi, vdpi;

   hgroup = svgDocument.createElementNS(svgNS, "g");
   vgroup = svgDocument.createElementNS(svgNS, "g");
   svgRoot.appendChild(hgroup);
   svgRoot.appendChild(vgroup);

   drawLine(hgroup, 0, 100, "100%", 100, "#202020", 1, 1);
   drawLine(vgroup, 100, 0, 100, "100%", "#202020", 1, 1);

   hdpi = hgroup.getBBox().width  * 25.4 / WIDTH;
   vdpi = vgroup.getBBox().height * 25.4 / HEIGHT;

   drawText(hgroup, "DPI, horizontal: " + hdpi.toFixed(2), 100, 100);
   drawText(hgroup, "DPI, vertical:   " + vdpi.toFixed(2), 100, 120);
}
Run Code Online (Sandbox Code Playgroud)

IE9,FF,Opera和Chrome都同意水平和垂直两个显示器都是96 dpi(虽然Opera稍微不准确),Safari在两台显示器上报告0 dpi.所以svg似乎将"像素"定义为"96dpi".一些快速的谷歌搜索似乎证实了这一点,虽然我没有找到任何确定的,大多数命中给出90dpi,96dpi作为FF变种.

svg

9
推荐指数
1
解决办法
2390
查看次数

获取剪切对象的"显示"边界框

我需要找到被剪切的对象的可见x和y边界,以便我可以在其周围放置其他对象.但是,规范声明getBBox没有考虑剪辑路径,所以我不能使用边界框.任何想法我怎样才能找到剪裁对象的显示限制?

svg

6
推荐指数
1
解决办法
1072
查看次数

为打印机输出创建和缩放SVG

我有一个应用程序,它创建一个约300 x 150px的基本svg瓷砖.我需要复制这个图块,这样我就可以在两个A4页面或一个A3页面上创建一个很好的打印输出.所以,基本上,我只是在svg而不是Photoshop /中做页面布局101.

任何人都可以给我任何关于如何开始这个的指示?目前,我非常天真地这样做:

  1. 设置一个大约1500 x 1500px的大画布
  2. 在JavaScript中将图块复制4 x 6次
  3. 从浏览器打印

这或多或少可以通过,但看起来并不好.设置A4页面的实际尺寸的画布会有帮助吗?如果我这样做,那么我就会遇到这样的问题:磁贴是一个复杂的图形,我目前使用像素单位创建.即使我这样做,浏览器也可能无论如何都会忽略画布大小.或者我应该先转换为pdf?如果我这样做,我仍然需要弄清楚如何设置一个可以很好地转换为pdf的svg'页面'.并且任何工具实际上都支持svg 1.2页面的东西吗?

请注意,我不能使用Inkscape,因为我的svg代码完全是JavaScript.

pdf layout svg canvas

6
推荐指数
1
解决办法
7993
查看次数

C++ - 函数范围内的函数声明?

我前段时间正在阅读C++ 11标准草案并遇到过这个草案(见§8.3.6,第204页):

void g(int = 0, ...); // OK, ellipsis is not a parameter so it can follow

// a parameter with a default argument
void f(int, int);
void f(int, int = 7);
void h() {
    f(3); // OK, calls f(3, 7)
    void f(int = 1, int); // error: does not use default
    // from surrounding scope
}
void m() {
    void f(int, int); // has no defaults
    f(4); // error: wrong number of arguments
    void …
Run Code Online (Sandbox Code Playgroud)

c++ scope declaration function

6
推荐指数
1
解决办法
1164
查看次数

jQuery:将复选框的值作为数组返回?

这让我很难过.我可以轻松地将多选的值作为数组获取,并将其传递给ajax请求:

<select id="countries" class="multiselect" multiple="multiple" name="countries[]">
  <option value="AFG">Afghanistan</option>
  <etc>
...
$countries_input = $("#countries");
var countries = $countries_input.val();
$.ajax({
  data: {
    country : countries,
    ...
  },
  ...
});
Run Code Online (Sandbox Code Playgroud)

但我找不到任何等效的方法来获取具有多个选择的复选框的值.明显的东西不起作用:

<input type="checkbox" name="check[]" value="foo1"/>foo1<br/>
<input type="checkbox" name="check[]" value="foo2"/>foo2<br/>
...
var bar = $('input:checkbox[name=check]').val();         // undefined
var bar = $('input:checkbox[name=check[]]').val();       // also undefined
var bar = $('input:checkbox[name=check]:checked').val(); // also undefined
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢.

forms checkbox jquery jquery-selectors

5
推荐指数
1
解决办法
2716
查看次数