我需要能够动态创建<select>元素并将其转换为jQuery .combobox().这应该是元素创建事件,而不是某些"click"事件,在这种情况下我可以使用jQuery .on().
这样的事情存在吗?
$(document).on("create", "select", function() {
$(this).combobox();
}
Run Code Online (Sandbox Code Playgroud)
我不愿意使用livequery,因为它已经过时了.
更新提到的select/combobox通过ajax加载到jQuery颜色框(模态窗口),因此问题 - 我只能使用colorbox启动组合框onComplete,但是在更改一个组合框时,必须动态创建另一个select/combobox,因此我需要一个检测元素创建的更通用方法(select在本例中).
UPDATE2为了尝试进一步解释问题 - 我有select/combobox递归创建的元素,里面还有很多启动代码.combobox(),因此如果我使用经典的方法,比如在@ bipen的答案中,我的代码会膨胀到疯狂的级别.希望这能更好地解释问题.
UPDATE3感谢大家,我现在明白,因为DOMNodeInserted在DOM变异中遗漏了一个空白,并且没有解决这个问题的方法.我只需要重新考虑我的申请.
是否可以在MySQL中执行UPDATE查询,只有在满足某些条件时才更新字段值?像这样的东西:
UPDATE test
SET
CASE
WHEN true
THEN field = 1
END
WHERE id = 123
Run Code Online (Sandbox Code Playgroud)
换一种说法:
UPDATE test
SET
something = 1, /*field that always gets updated*/
CASE
WHEN true
THEN field = 1 /*field that should only get updated when condition is met*/
END
WHERE id = 123
Run Code Online (Sandbox Code Playgroud)
这样做的正确方法是什么?
我需要在字符串向量中找到元素的索引.这是我到目前为止所得到的:
fn main() {
let test: Vec<String> = vec![
"one".to_string(),
"two".to_string(),
"three".to_string(),
"four".to_string(),
];
let index: i32 = test
.iter()
.enumerate()
.find(|&r| r.1.to_string() == "two".to_string())
.unwrap()
.0;
}
Run Code Online (Sandbox Code Playgroud)
它会产生错误:
error[E0308]: mismatched types
--> src/main.rs:9:22
|
9 | let index: i32 = test
| ______________________^
10 | | .iter()
11 | | .enumerate()
12 | | .find(|&r| r.1.to_string() == "two".to_string())
13 | | .unwrap()
14 | | .0;
| |__________^ expected i32, found usize
Run Code Online (Sandbox Code Playgroud)
我认为这是因为enumerate()返回一个元组(usize, _)(如果我错了,请纠正我),但是如何转换usize …
如何在匹配情况下获取默认值?
//Just an example, this value is usually not known
val something: String = "value"
something match {
case "val" => "default"
case _ => smth(_) //need to reference the value here - doesn't work
}
Run Code Online (Sandbox Code Playgroud)
更新:我看到我的问题并没有被真正理解,这就是为什么我展示了一个更接近我正在研究的真实事物的例子:
val db = current.configuration.getList("instance").get.unwrapped()
.map(f => f.asInstanceOf[java.util.HashMap[String, String]].toMap)
.find(el => el("url").contains(referer))
.getOrElse(Map("config" -> ""))
.get("config").get match {
case "" => current.configuration.getString("database").getOrElse("defaultDatabase")
case _ => doSomethingWithDefault(_)
}
Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,需要编写自定义全局未捕获异常处理程序.我已经阅读了所有的stackoverflow线程,并且每个线程都缺少一个如何实现它的简单明了的例子.
请考虑以下简单示例:
public static void log(String msg) throws Exception {
String logPath = "/application/logs/java.log";
Calendar c = new GregorianCalendar();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String now = format.format(c.getTime());
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(logPath, true)));
out.println(now + " " + msg);
out.close();
}
Run Code Online (Sandbox Code Playgroud)
它抛出一个标准异常,这只是一个标准输出.我如何实现我自己的异常,通过将错误输出到日志文件中的简单方法覆盖标准异常?显然,实际的应用程序要大得多,我们正在谈论未捕获的异常,这就是为什么try/catch块不是选项.
更新:如果你能用一个非常明确的完整例子来回答,因为我发现了几个像@RamonBoza提供的例子,但我不知道如何实现它们,这就是这个问题的全部内容.
更新2:所以我试着在下面的答案中测试唯一的例子,它显然不起作用.我创建了一个新的类文件"MyRunnable"并将代码粘贴到其中:
package mypackage;
Thread t = new Thread(new MyRunnable());
t.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
public void uncaughtException(Thread t, Throwable e) {
LOGGER.error(t + " throws exception: " + e);
}
});
t.start();
//outside …Run Code Online (Sandbox Code Playgroud) 假设我有这个示例案例类
case class Test(key1: Int, key2: String, key3: String)
Run Code Online (Sandbox Code Playgroud)
我有一张地图
myMap = Map("k1" -> 1, "k2" -> "val2", "k3" -> "val3")
Run Code Online (Sandbox Code Playgroud)
我需要在代码的几个位置将此映射转换为我的case类,如下所示:
myMap.asInstanceOf[Test]
Run Code Online (Sandbox Code Playgroud)
最简单的方法是什么?我可以以某种方式使用隐含的吗?
在Play Framework的主页上,他们声称"JSON是一等公民".我还没有看到证据.
在我的项目中,我正在处理一些相当复杂的JSON结构.这只是一个非常简单的例子:
{
"key1": {
"subkey1": {
"k1": "value1"
"k2": [
"val1",
"val2"
"val3"
]
}
}
"key2": [
{
"j1": "v1",
"j2": "v2"
},
{
"j1": "x1",
"j2": "x2"
}
]
}
Run Code Online (Sandbox Code Playgroud)
现在我知道Play正在使用Jackson来解析JSON.我在我的Java项目中使用Jackson,我会做这样简单的事情:
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> obj = mapper.readValue(jsonString, Map.class);
Run Code Online (Sandbox Code Playgroud)
这样可以很好地将我的JSON解析为Map对象,这就是我想要的 - 字符串和对象的映射,并允许我轻松地将数组转换为ArrayList.
Scala/Play中的相同示例如下所示:
val obj: JsValue = Json.parse(jsonString)
Run Code Online (Sandbox Code Playgroud)
相反,这给了我一个专有JsObject 类型,这不是我真正想要的.
我的问题是:我可以在Scala/Play中解析JSON字符串Map而不是JsObject像在Java中那样容易吗?
附带问题:是否有JsObject使用MapScala/Play 而不是Scala/Play的原因?
我的堆栈:Play Framework 2.2.1/Scala 2.10.3/Java 8 64bit/Ubuntu 13.10 64bit …
例如,我有一个从AJAX响应生成的10个标签:
<a href="#" id="b1">b1</a>
<a href="#" id="b2">b2</a>
<a href="#" id="b3">b3</a>
<a href="#" id="b4">b4</a>
<a href="#" id="b5">b5</a>
<a href="#" id="b6">b6</a>
<a href="#" id="b7">b7</a>
<a href="#" id="b8">b8</a>
<a href="#" id="b9">b9</a>
<a href="#" id="b10">b10</a>
Run Code Online (Sandbox Code Playgroud)
我需要通过循环为每个人分配onclick事件:
for(i=1; i<11; i++) {
document.getElementById("b"+i).onclick=function() {
alert(i);
}
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,它只分配onclick到最后一个标签并提醒"11".我怎样才能让它发挥作用?我宁愿不使用jQuery.
这个
fn main() {
let test = "Foo".to_string();
test.to_lowercase();
}
Run Code Online (Sandbox Code Playgroud)
产生错误
error: use of unstable library feature 'collections'
test.to_lowercase();
^~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)
但我正在使用
rustc 1.2.0-nightly (f76d9bcfc 2015-05-28) (built 2015-05-28)
Run Code Online (Sandbox Code Playgroud)
并根据http://doc.rust-lang.org/1.0.0/book/release-channels.html每晚启用不稳定功能.我也试过稳定版和测试版,但错误完全相同.那么这里的问题是什么?
例如
println!("{}", 10_000_000);
Run Code Online (Sandbox Code Playgroud)
结果是
10000000
Run Code Online (Sandbox Code Playgroud)
而我想把它格式化为类似的东西
10,000,000
Run Code Online (Sandbox Code Playgroud)
我浏览了fmt模块文档,但没有什么可以涵盖这种特殊情况.我认为这样的事情会起作用
println!("{:,i}", 10_000_000);
Run Code Online (Sandbox Code Playgroud)
但它会引发错误
invalid format string: expected `}`, found `,`
Run Code Online (Sandbox Code Playgroud) rust ×3
scala ×3
java ×2
javascript ×2
combobox ×1
exception ×1
if-statement ×1
jquery ×1
json ×1
mysql ×1
sql-update ×1